当我们仅能减少功能数量时,为什么使用PCA来加快学习算法?


12

在机器学习课程中,我了解到PCA(主成分分析)的一种常见用法是加快其他机器学习算法的速度。例如,假设您正在训练逻辑回归模型。如果您有一个从1到n 的训练集,结果证明向量x的维数很大(比如说维数),可以使用PCA获得较小的维度(比方说k个维度)特征向量z。然后,您可以在的训练集上从1到n 训练逻辑回归模型。训练此模型将更快,因为特征向量的维数较小。z i y i (x(i),y(i))(z(i),y(i))

但是,我不明白为什么不能仅通过随机选择k个特征并消除其余特征来将特征向量的维数减小为k个维。

z向量是特征向量的线性组合。由于z向量限制在k维表面上,因此您可以将ak个消除的特征值写为k个剩余特征值的线性函数,因此所有z都可以通过k个特征的线性组合来形成。因此,在具有消除特征的训练集上训练的模型是否不应该与在其维度被PCA缩减的训练集上训练的模型具有相同的功效?它是否仅取决于模型的类型以及是否取决于某种线性组合?


1
相较于使用PCA,下降列会导致丢失更多信息
Haitao Du

2
聚合酶链反应与它有什么关系?:-) ---认真地说,在使用缩写词之前,您应该始终拼写出一个术语。
卡尔·威索夫特

您可以将PCA获得的特征向量视为新特征,因此PCA确实允许减少特征-通过将我们拥有的特征向量重组为捕获比起初的特征更多特征的特征向量。
mathreadler's

Answers:


26

假设您最初具有特征,但是数量太多,因此您实际上想在特征上拟合模型。您可以选择个功能,然后删除其余的功能。如果是我们的特征矩阵,则这对应于使用,其中精确地选择了我们要包括的列。但是,这忽略了其他列中的所有信息,因此,为什么不考虑更通用的降维,其中?这正是PCA所做的:我们找到矩阵使得d < p d X X d d { 0 1 } p × d X X V V [R p × d V X V X X d p ppd<pdXXDD{0,1}p×dXXVVRp×dVXV在包含尽可能多的信息。并非所有的线性组合都是一样的。除非我们的矩阵排名太低,否则列的随机集合可以(很有可能)跨越所有列的列空间,我们当然不能像所有要素那样好。一些信息将丢失,因此我们应该丢失尽可能少的信息。使用PCA,我们试图避免丢失的“信息”就是数据的变化。XXdpp

至于为什么我们将自己限制在预测变量的线性变换上,在此用例中的重点是计算时间。如果我们可以在上进行花哨的非线性降维,那么我们也可以将模型拟合到所有。因此,PCA处于快速计算和有效交叉的完美位​​置。XXX


2
+1。仍然要问,为什么X的变化(PCA试图保留)应该与预测Y有关。这是一个相关的主题:stats.stackexchange.com/questions/141864
变形虫说莫妮卡(Reonica Monica)

4

PCA在保留原始数据的方差/信息的同时减少了功能。这有助于启用计算,同时又不丢失数据的真实性。


2

PCA解决方案

首先,当为此目的使用PCA时要当心。正如我在回答一个相关问题时所写的那样 PCA 不一定会导致选择对您打算做的回归有用的功能(另请参见Jolliffe 1982)。

OP提出的解决方案

现在考虑提议的替代机制:reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.现在,在问题陈述中要求我们假设dimension of your vector x is very large。我们称这个维为p

有种方法可以从一组选择预测变量。举一个例子,如果且我们从数据集中选择预测变量,那么我们将不得不拟合不同的模型。假设我们知道,而不是等。简单来说,在大的设置中要强力使用并不是一个问题。ķ p p = 1000 ķ = 5 8.25 × 10 12 ķ = 5 ķ = 6 ppCkkpp=1000k=58.25×1012k=5k=6p

建议的解决方案

为了应对较大的回归,已经提出了许多惩罚性回归策略。尤其是LASSO方法将通过将预测变量的贡献归零,构建回归模型进行维度缩减,预测变量的贡献不足。有一个非常聪明的算法(LARS)可以有效地拟合模型。p

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.