22 import daal.algorithms.pca
as pca
23 import daal.algorithms.pca.quality_metric_set
as quality_metric_set
24 from daal.algorithms.pca.quality_metric
import explained_variance
25 from daal.data_management
import (
26 DataSourceIface, FileDataSource, HomogenNumericTable, MergedNumericTable,
27 NumericTableIface, BlockDescriptor, readWrite
30 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
31 if utils_folder
not in sys.path:
32 sys.path.insert(0, utils_folder)
33 from utils
import printNumericTable
35 datasetFileName = os.path.join(
'..',
'data',
'batch',
'pca_normalized.csv')
46 dataSource = FileDataSource(
48 DataSourceIface.doAllocateNumericTable,
49 DataSourceIface.doDictionaryFromContext
53 dataSource.loadDataBlock(nVectors)
56 algorithm = pca.Batch(method=pca.svdDense)
59 algorithm.input.setDataset(pca.data, dataSource.getNumericTable())
62 result = algorithm.compute()
63 eigenData = result.get(pca.eigenvalues)
69 qualityMetricSet = quality_metric_set.Batch(nComponents)
70 explainedVariances = explained_variance.Input.downCast(qualityMetricSet.getInputDataCollection().getInput(quality_metric_set.explainedVariancesMetrics))
71 explainedVariances.setInput(explained_variance.eigenvalues, eigenData)
74 qualityMetricSet.compute()
77 qmsResult = qualityMetricSet.getResultCollection()
80 print (
"Quality metrics for PCA")
81 result = explained_variance.Result.downCast(qmsResult.getResult(quality_metric_set.explainedVariancesMetrics))
82 printNumericTable(result.getResult(explained_variance.explainedVariances),
"Explained variances:")
83 printNumericTable(result.getResult(explained_variance.explainedVariancesRatios),
"Explained variances ratios:")
84 printNumericTable(result.getResult(explained_variance.noiseVariance),
"Noise variance:")
86 if __name__ ==
"__main__":