原文地址:https://www.coursera.org/learn/machine-
learning/discussions/weeks/8/threads/XLl24URmEea1pw5frt5utw
Q1)我们如何知道哪些是最重要的功能要保留?为什么我们只能选择第一个 K?他们不是
自然地按照意义排序吗?选择 K 最有影响力的维度不是更有意义吗?
吴教授没有深入讨论奇异值分解(SVD)如何工作的细节,但事实证明,SVD 的输出正是
我们在 PCA 中所需要的。它对输入矩阵进行“谱分解”,并以一种明显的形式给出它,这些
是重要的维度。SVD 的输出是:
[U,S,V] = svd(Sigma);
其中 Sigma 是协方差矩阵。输出值 U 和 V 是酉矩阵,U 的列是变换的特征向量。S 是对
角矩阵,包含降序的相应特征值。换句话说,SVD 已经完成了确定哪些维度最重要的工
作,并按照该顺序给出了结果。Ng 教授在 7 点左右的标题为“选择数量或主要部分”的视频
中进行了讨论。网络上有许多优秀的文章可以提供有关 SVD 的更多信息:
http://mathworld.wolfram.com/SingularValueDecomposition.html
https://en.wikipedia.org/wiki/Singular_value_decomposition
这里是 SVD 的 MATLAB 文档:
http://www.mathworks.com/help/matlab/ref/svd.html
Q2)为什么我们不需要计算 U 的矩阵逆以恢复原始维度中的数据?
请看看上面有关奇异值分解的参考资料。事实证明,返回的 U 矩阵具有它是酉矩阵的特殊
性质。酉矩阵的一个特殊性质是:
其中“*”表示“共轭转置”。
由于我们在这里处理实数,这相当于:
所以我们可以计算逆并使用它,但这会浪费能量和计算周期。
Q3)从视频“应用 PCA 的建议”:为什么我们只在训练集上使用 PCA?
如果将 PCA 应用于整个数据集,然后将该组分解为训练集,验证集和测试集,那么原始
测试集中的数据将对缩减的训练集产生影响。
这会导致过度配合。
- 1
- 2
前往页