- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I attached my code for PCA analysis below and I don't think it's giving correct result. I also found that no matter how I change the values in "data" it always return the last eigenvalue as 0. Am I doing something wrong here?
data:
2.000 0.000 0.000
0.000 3.000 0.000
0.000 0.000 9.000
eigen value:
1.500 1.500 0.000
eigen vectors:
-0.816 0.408 0.408
-0.000 -0.707 0.707
0.577 0.577 0.577
Code:
pca::Batch<double, pca::svdDense> algorithm; HomogenNumericTable<double> *dataTable = new HomogenNumericTable<double>(data, nFeatures, nObservations); services::SharedPtr<HomogenNumericTable<double> > dataTablePtr(dataTable); printNumericTable(dataTablePtr); algorithm.input.set(pca::data, dataTablePtr); algorithm.compute(); services::SharedPtr<pca::Result> result = algorithm.getResult(); printNumericTable(result->get(pca::eigenvalues)); printNumericTable(result->get(pca::eigenvectors));
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Lingzi,
Intel DAAL version of PCA normalizes the data before computation of eigenvectors and eigenvalues. Thus, for arbitrary 3d diagonal matrix that represents your data, its intermediate normalized representation is as follows:
1.155 -0.577 -0.577
-0.577 1.155 -0.577
-0.577 -0.577 1.155
Per our extra validation of Intel DAAL PCA results by using R*, the results are identical up to numeric error.
For your question related to zero value of the last eigenvalue.
The n x p dataset represents n feature vectors in p-dimensional space. In particular, 3 feature vectors of size 3 will occupy the same plane which is represented with 2 vectors. PCA computes those two vectors.
For a different data set with n > p, for example
double data[] = { 2, 1, 0, 0, 3, 3, -1, 3, 7, 0, 0, 2 };
Intel DAAL PCA returns the following eigenvalues: 2.391 0.542 0.067
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page