48 import daal.algorithms.pca
as pca
49 import daal.algorithms.pca.quality_metric_set
as quality_metric_set
50 from daal.algorithms.pca.quality_metric
import explained_variance
51 from daal.data_management
import (
52 DataSourceIface, FileDataSource, HomogenNumericTable, MergedNumericTable,
53 NumericTableIface, BlockDescriptor, readWrite
56 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
57 if utils_folder
not in sys.path:
58 sys.path.insert(0, utils_folder)
59 from utils
import printNumericTable
61 datasetFileName = os.path.join(
'..',
'data',
'batch',
'pca_normalized.csv')
72 dataSource = FileDataSource(
74 DataSourceIface.doAllocateNumericTable,
75 DataSourceIface.doDictionaryFromContext
79 dataSource.loadDataBlock(nVectors)
82 algorithm = pca.Batch(method=pca.svdDense)
85 algorithm.input.setDataset(pca.data, dataSource.getNumericTable())
88 result = algorithm.compute()
89 eigenData = result.get(pca.eigenvalues)
95 qualityMetricSet = quality_metric_set.Batch(nComponents)
96 explainedVariances = explained_variance.Input.downCast(qualityMetricSet.getInputDataCollection().getInput(quality_metric_set.explainedVariancesMetrics))
97 explainedVariances.setInput(explained_variance.eigenvalues, eigenData)
100 qualityMetricSet.compute()
103 qmsResult = qualityMetricSet.getResultCollection()
106 print (
"Quality metrics for PCA")
107 result = explained_variance.Result.downCast(qmsResult.getResult(quality_metric_set.explainedVariancesMetrics))
108 printNumericTable(result.getResult(explained_variance.explainedVariances),
"Explained variances:")
109 printNumericTable(result.getResult(explained_variance.explainedVariancesRatios),
"Explained variances ratios:")
110 printNumericTable(result.getResult(explained_variance.noiseVariance),
"Noise variance:")
112 if __name__ ==
"__main__":