【发布时间】:2015-06-11 03:57:07
【问题描述】:
我在 MATLAB 中执行以下操作:
>> X = [ 123 982 123 ; 434 233 842; 143 239 583; 733 292 503]
X =
123 982 123
434 233 842
143 239 583
733 292 503
[coeff,score] = princomp(X)
coeff =
-0.3714 0.9202 0.1241
0.7330 0.2085 0.6475
-0.5700 -0.3314 0.7519
score =
709.3366 26.4384 30.9912
-364.9469 -81.8490 125.1814
-104.8637 -262.5228 -101.7805
-239.5260 317.9334 -54.3921
>> X * coeff
ans =
603.9913 277.1477 743.6166
-470.2922 168.8604 837.8069
-210.2090 -11.8134 610.8450
-344.8714 568.6428 658.2333
为什么 score = X * coeff 不是?
我相信 X * coeff 与沿主分量轴投影原始数据相同。
【问题讨论】:
-
我相信这是因为系数不是正交的。检查mathworks.com/help/stats/feature-transformation.html#f75476了解更多信息
-
那么理想情况下,我应该在计算投影之前先将它们正交化吗?