47 import daal.algorithms.pca
as pca
48 import daal.algorithms.pca.quality_metric_set
as quality_metric_set
49 from daal.algorithms.pca.quality_metric
import explained_variance
50 from daal.data_management
import (
51 DataSourceIface, FileDataSource, HomogenNumericTable, MergedNumericTable,
52 NumericTableIface, BlockDescriptor, readWrite
55 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
56 if utils_folder
not in sys.path:
57 sys.path.insert(0, utils_folder)
58 from utils
import printNumericTable
60 datasetFileName = os.path.join(
'..',
'data',
'batch',
'pca_normalized.csv')
71 dataSource = FileDataSource(
73 DataSourceIface.doAllocateNumericTable,
74 DataSourceIface.doDictionaryFromContext
78 dataSource.loadDataBlock(nVectors)
81 algorithm = pca.Batch(method=pca.svdDense)
84 algorithm.input.setDataset(pca.data, dataSource.getNumericTable())
87 result = algorithm.compute()
88 eigenData = result.get(pca.eigenvalues)
94 qualityMetricSet = quality_metric_set.Batch(nComponents)
95 explainedVariances = explained_variance.Input.downCast(qualityMetricSet.getInputDataCollection().getInput(quality_metric_set.explainedVariancesMetrics))
96 explainedVariances.setInput(explained_variance.eigenvalues, eigenData)
99 qualityMetricSet.compute()
102 qmsResult = qualityMetricSet.getResultCollection()
105 print (
"Quality metrics for PCA")
106 result = explained_variance.Result.downCast(qmsResult.getResult(quality_metric_set.explainedVariancesMetrics))
107 printNumericTable(result.getResult(explained_variance.explainedVariances),
"Explained variances:")
108 printNumericTable(result.getResult(explained_variance.explainedVariancesRatios),
"Explained variances ratios:")
109 printNumericTable(result.getResult(explained_variance.noiseVariance),
"Noise variance:")
111 if __name__ ==
"__main__":