56 import daal.algorithms.pca
as pca
57 import daal.algorithms.pca.transform
as pca_transform
58 from daal.data_management
import DataSourceIface, FileDataSource
60 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
61 if utils_folder
not in sys.path:
62 sys.path.insert(0, utils_folder)
63 from utils
import printNumericTable
64 from daal.data_management
import NumericTable
66 datasetName = os.path.join(
'..',
'data',
'batch',
'pca_transform.csv')
68 if __name__ ==
"__main__":
71 dataSource = FileDataSource(datasetName,
72 DataSourceIface.doAllocateNumericTable,
73 DataSourceIface.doDictionaryFromContext)
74 dataSource.loadDataBlock()
75 data = dataSource.getNumericTable()
78 algorithm = pca.Batch(fptype=np.float64,method=pca.svdDense)
81 algorithm.input.setDataset(pca.data, data)
90 algorithm.parameter.resultsToCompute = pca.mean | pca.variance | pca.eigenvalue;
93 res = algorithm.compute()
95 printNumericTable(res.get(pca.eigenvalues),
"Eigenvalues:")
96 printNumericTable(res.get(pca.eigenvectors),
"Eigenvectors:")
98 eigenvaluesT = res.get(pca.eigenvalues)
99 printNumericTable(eigenvaluesT,
"Eigenvalues kv:")
101 meansT = res.get(pca.means)
102 printNumericTable(meansT,
"Means kv:")
105 variancesT = res.get(pca.variances)
106 printNumericTable(variancesT,
"Variances kv:")
109 tralgorithm = pca_transform.Batch(fptype=np.float64)
112 tralgorithm.parameter.nComponents = 2
115 tralgorithm.input.setTable(pca_transform.data, data)
118 tralgorithm.input.setTable(pca_transform.eigenvectors, res.get(pca.eigenvectors))
121 tralgorithm.input.setCollection(pca_transform.dataForTransform, res.getCollection(pca.dataForTransform))
124 trres = tralgorithm.compute()
126 printNumericTable(trres.get(pca.transform.transformedData),
"Transformed data:");