32 import daal.algorithms.pca
as pca
33 import daal.algorithms.pca.transform
as pca_transform
34 from daal.data_management
import DataSourceIface, FileDataSource
36 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
37 if utils_folder
not in sys.path:
38 sys.path.insert(0, utils_folder)
39 from utils
import printNumericTable
40 from daal.data_management
import NumericTable
42 datasetName = os.path.join(
'..',
'data',
'batch',
'pca_transform.csv')
44 if __name__ ==
"__main__":
47 dataSource = FileDataSource(datasetName,
48 DataSourceIface.doAllocateNumericTable,
49 DataSourceIface.doDictionaryFromContext)
50 dataSource.loadDataBlock()
51 data = dataSource.getNumericTable()
54 algorithm = pca.Batch(fptype=np.float64,method=pca.svdDense)
57 algorithm.input.setDataset(pca.data, data)
66 algorithm.parameter.resultsToCompute = pca.mean | pca.variance | pca.eigenvalue;
69 res = algorithm.compute()
71 printNumericTable(res.get(pca.eigenvalues),
"Eigenvalues:")
72 printNumericTable(res.get(pca.eigenvectors),
"Eigenvectors:")
74 eigenvaluesT = res.get(pca.eigenvalues)
75 printNumericTable(eigenvaluesT,
"Eigenvalues kv:")
77 meansT = res.get(pca.means)
78 printNumericTable(meansT,
"Means kv:")
81 variancesT = res.get(pca.variances)
82 printNumericTable(variancesT,
"Variances kv:")
85 tralgorithm = pca_transform.Batch(fptype=np.float64)
88 tralgorithm.parameter.nComponents = 2
91 tralgorithm.input.setTable(pca_transform.data, data)
94 tralgorithm.input.setTable(pca_transform.eigenvectors, res.get(pca.eigenvectors))
97 tralgorithm.input.setCollection(pca_transform.dataForTransform, res.getCollection(pca.dataForTransform))
100 trres = tralgorithm.compute()
102 printNumericTable(trres.get(pca.transform.transformedData),
"Transformed data:");