opencv中pca的疑问
我有七个样本,每个样本是64*64。排列,每个样本一行,就构成了一个7*4096的样本矩阵。平均向量矩阵是:1*4096特征值矩阵是:1*7(这里有疑惑,理论上应该是1*...
我有七个样本,每个样本是64*64。
排列,每个样本一行,就构成了一个7*4096的样本矩阵。
平均向量矩阵是:1*4096
特征值矩阵是:1*7(这里有疑惑,理论上应该是1*4096的,但是按照网上的教程,需要加判断min(dim, cols))
特征向量是:7*4096
用cvCalcPCA这个算法,最后那个参数是CV_PCA_DATA_AS_ROW,取前4个特征值
最后获得的矩阵是7*4
发现这个7*4和理论上的4096*4是不一样的呀。。为什么呢 展开
排列,每个样本一行,就构成了一个7*4096的样本矩阵。
平均向量矩阵是:1*4096
特征值矩阵是:1*7(这里有疑惑,理论上应该是1*4096的,但是按照网上的教程,需要加判断min(dim, cols))
特征向量是:7*4096
用cvCalcPCA这个算法,最后那个参数是CV_PCA_DATA_AS_ROW,取前4个特征值
最后获得的矩阵是7*4
发现这个7*4和理论上的4096*4是不一样的呀。。为什么呢 展开
1个回答
展开全部
结果是对的,没问题。
PCA的作用,是降低每个数据的维数,而不是减少数据的个数。
你现在有7个样本,每个样本有4096个变量,PCA减少变量数至4个,因此最终结果仍然是7个样本,每个样本有4个变量。结果没问题。
PCA的作用,是降低每个数据的维数,而不是减少数据的个数。
你现在有7个样本,每个样本有4096个变量,PCA减少变量数至4个,因此最终结果仍然是7个样本,每个样本有4个变量。结果没问题。
更多追问追答
追问
网上不是说算出来的是一个投影矩阵么?然后用待降维的矩阵去乘以这个投影矩阵,然后降维么?
我是不是理解错了,
是不是应该让待降维的矩阵重新按照上面那个方法再降维一次呢?
追答
奥,原来是算投影矩阵。
那么教程里显然错了。min(dim, cols)这完全没有道理,不可能跟根据样本数和变量数的大小动态决定矩阵尺寸。
你说的对,特征值应该是4096个,投影矩阵也应该是4096*4的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询