SVD 是非线性的,而 PCA(通过特征分解)是线性的吗?

数据挖掘 机器学习 无监督学习
2021-10-04 10:07:29

我很困惑,因为我的一位同事最近告诉我,他更喜欢使用 SVD 而不是 PCA(通过特征分解),因为与后者相反,前者是非线性的,因此它也可以识别一些非线性模式。

但是,我无法确切地看到 SVD 是非线性的,因为我的印象是它只是应用了一系列线性矩阵乘法(另请参阅此StackExchange 答案)。

我知道 t-SNE 肯定是非线性的,因此它有时被称为非线性 PCA。

SVD 是非线性的,而 PCA(通过特征分解)是线性的吗?

2个回答

据我所知,没有。

SVD 和 PCA 都是线性降维算法。一些非线性降维算法例如 LLE、Kernel-PCA、Isomap 等。

关于 t-SNE 我想补充一点。它降低了维度(并且做得很好!)但它仅用于可视化,不能用于学习过程所以要小心把所有这些放在一起。换句话说,它们都是降维算法,但是,PCA 和 SVD 可以用于特征提取,而 t-SNE 不能。所有这些都可以用于可视化目的(在 EDA 中)。

我当然推荐阅读这个答案可能的事实是“特征值的平方根XX是的奇异值X让你的朋友感到困惑,这是一种非线性方法。

希望能帮助到你。祝你好运!

PCA(主成分分析)是一种创建平移+旋转矩阵的算法,具有以下属性:第 0 列的标准差最高,其次是第 1 列的标准差,依此类推。绘制它,你会看到!因此,您可以仅将列 (0,1) 绘制为 (x,y) 并获得数据集的适度教育视图。这就是为什么它被称为降维算法。事实上,您可以保留所有维度。

SVD(奇异值分解)是 PCA 使用的一种矩阵分解算法。它本身并不是一种降维算法。您可以使用它来学习分析数据,但不能通过降维来学习。SVD 允许您根据行和列的异常值与其他行或列的数量来对它们进行排名。SVD 还可以让您查看数据中有多少熵。