我不确定我是否正确地应用了PCA!我有p个特征和n个观察值(实例)。我把它们放在恩智浦矩阵X中。我执行均值归一化并得到归一化矩阵B。我计算pxp协方差矩阵C=(1/(n-1))B*.B的特征值和特征向量,其中*表示共轭转置。
与降序特征值对应的特征向量在pxp矩阵E中。假设我想将属性的数量从p减少到k。我使用等式X_new=B.E_reduced,其中E_reduced是通过选择E的前k列产生的。以下是我的问题:
1)应该是X_new=B.E_reduced还是X_new=X.E_reduced?
2)测试阶段是否需要重复上述计算?如果测试阶段类似于训练阶段,则不会获得加速,因为我必须在测试阶段计算每个实例的所有p个特征,而PCA会因为特征向量计算开销而使算法变慢。
3)应用PCA后,我注意到准确率下降。这是与数字k(我设置k=p/2)有关,还是与我使用线性PCA而不是内核PCA有关?选择数字k的最佳方法是什么?我读到我可以找到k个特征值之和与所有特征值之和的比率,并根据这个比率做出决定。
发布于 2016-10-29 03:51:17
您通常将乘法应用于居中的数据,因此投影的数据也是居中的。
在测试期间,从不重新运行主成分分析。只在训练数据上使用,并保留平移向量和投影矩阵。您需要应用与训练过程中完全相同的投影,而不是重新计算新的投影。
性能下降可能有很多原因。例如,你是否也应用了使用特征值的根的缩放?你第一次用的是什么方法?
https://stackoverflow.com/questions/40306868
复制相似问题