【发布时间】:2017-08-05 15:47:45
【问题描述】:
我正在尝试使用 PCA 降低训练集的维度。 我遇到了两种方法。
[V,U,eigen]=pca(train_x);
eigen_sum=0;
for lamda=1:length(eigen)
eigen_sum=eigen_sum+eigen(lamda,1);
if(eigen_sum/sum(eigen)>=0.90)
break;
end
end
train_x=train_x*V(:, 1:lamda);
在这里,我只是简单地使用特征值矩阵来重构训练集,其特征量由描述原始集 90% 的主成分确定。
我找到的替代方法几乎一模一样,保存最后一行,改成:
train_x=U(:,1:lamda);
换句话说,我们将训练集作为原始训练集的主成分表示,对某个特征 lamda。
这两种方法似乎都产生了相似的结果(样本外测试错误),但存在差异,尽管差异可能很小。
我的问题是,哪种方法是正确的?
【问题讨论】:
标签: matlab machine-learning pca training-data dimensionality-reduction