数据是一维的
在Q-PCA计算Q值的时候,Q值为0.
-
样本X和主成分矩阵P_k之间的投影是完全重合的。这意味着在降维后的空间中,样本X完全落在了主成分矩阵所在的超平面上。这种情况很少出现,通常只在样本数量很少、维度很低的情况下才会发生。(我的是这种)
-
样本X和主成分矩阵P_k之间的投影是非常接近的,其模长差异非常小。这意味着样本X的结构与主成分矩阵P_k的结构非常相似,可以视为是P_k所能表示的样本集合中的一个实例。这种情况比较常见,特别是在使用PCA对数据进行压缩或降维时。
我的时第一种原因,数据维度很低,只有一维(好像一维没必要用PCA了吧)
解决方法:
||X'P_k||^2项将为0,因此Q_count简化为Q = ||X||^2。这时,Q_count的值只取决于样本X本身,而与主成分矩阵P_k无关。
把
np.dot(np.dot(test_data_nor.T, (I - np.dot(p_k, p_k.T))), test_data_nor)改为
np.dot(test_data_nor.T, test_data_nor)
即可