我不确定这个问题是否已经在stackoverflow上,但我找不到它,所以我决定打开一个新的问题。我在尝试降低一个特征矩阵的维数。我有58个功能和30个实例/测量。我想把特征的数量减少到40个。但是我的矩阵的维度似乎有问题。
-
featureMatrix_cv是我的特征矩阵30行58列
PCA pca_analysis(featureMatrix_cv, cv::Mat(), cv::PCA::DATA_AS_ROW, 40); cv::Mat neu = pca_analysis.project(featureMatrix_cv.row(0));
-
第一个问题是,
pca_analysis.eigenvectors
有错误的尺寸我认为(30行和58列)。我在几个教程中读到,我应该得到N个N维特征向量,其中N是特征的数量(这里是58)。同样的问题对于pca_analysis.eigenvalues
(30行和1列),它应该提升大小(58,1)。 -
在第二行中,我试图将第一个实例投影到新的维度空间中,但这不起作用,因为
pca_analysis.project
返回具有30个值的矩阵而不是40个值。我在教程中读到投影向量/矩阵应该有40个值,这是特征空间的维度。
有没有人可以帮助我或有类似的问题?
好的,找到这个线程后,我现在知道问题是什么了:我需要更多的实例而不是功能!如果我有58个特征,我只需要至少58个样本。这对我来说不是问题,因为我有足够的数据,我只是一直使用30个样本进行测试。