根据Andreas C.Müller&Sarah Guido:
"对于具有许多功能的数据集,线性模型可能非常强大。特别是,如果您拥有比训练数据点更多的功能,则任何目标y可以(在训练集上)完美地建模为线性函数">
线性代数是如何解释它的?
感谢
我可以试着给你一个直观的答案。
假设您有一个由二维中的单个数据点组成的训练数据集。在这种情况下,我们有n_data = 1
(数据点的数量)和n_features = 2
(n_features
>n_data
)。训练数据集可以通过1D线性函数y = a0
完美地建模。
类似地,如果您有三个特征(即三维)和两个数据点(因此n_features = 3
>n_data = 2
),那么这两个点总是可以由形式为y = a0 + a1 x1
的2D线建模。
在四个维度(四个特征)中,三个点总是可以通过由形式为y = a0 + a1x1 + a2x2
的线性方程定义的(超)平面来建模。
一般来说,超平面(定义为维数比其周围空间的维数少的任何平面)总是可以用线性公式a1*x1 + a2*x2 + a3*x3 + ... + an*xn = b
来定义。因此,如果点的数量小于维度的数量,则总是可以找到超平面,因此,如果样本的数量小于特征的数量(对应于空间的维度),则总是有可能对一组训练数据进行建模。
这个问题更适合交叉验证社区。
这里的关键字是"在训练集上">!
"对于具有许多功能的数据集,线性模型可能非常强大。特别是如果您拥有比训练数据点更多的特征,任何目标y都可以完美地建模(在训练集上)为线性函数",Andreas C.Müller&Sarah Guido。
通常,比数据点更多的特征(或比样本/观测更多的变量/预测因子)会导致模型过拟合。如果我们有太多的特征,学习到的假设可能非常适合训练集,但无法推广到新的例子(在测试集上)。例如,考虑一个由1000个图像组成的数据集,每个图像都有300x300个像素(1000个样本和90000个特征)。
预测因子比观测值多(通常表示为p>n)的问题是,标准线性回归问题没有唯一的解决方案线性代数就是这样解释的如果数据点矩阵的行表示事例,列表示预测因子,则矩阵的列之间必然存在线性相关性。因此,一旦你找到了n预测因子的系数,其他p-n-预测器的任意线性组合。其他方法,如LASSO
或ridge regression
,或各种其他机器学习方法,提供了在这种情况下进行的方法。
关于交叉验证有一个很好的答案:
当有更多变量而不是数据点,但这必须小心。
当变量多于数据点时,问题可能不会有一个唯一的解决方案,除非它受到进一步的约束。也就是说,在那里可能有多个(可能无限多个)适合数据的解决方案同样好。这样的问题被称为
ill-posed
或underdetermined
例如,当变量多于数据点,标准最小二乘回归有无穷多实现训练数据零错误的解决方案。这样的模型肯定会过度拟合,因为它对训练数据的数量。随着模型灵活性的增加(例如回归模型中的变量)和训练数据量缩小,模型将越来越有可能通过拟合训练中的随机波动来实现低误差不代表真实的底层分布的数据。因此,当模型在未来运行时,性能将很差来自相同分布的数据。
在讨论特征数量和线性模型回归之间的关系之前,让我弄清楚属性或预测器和特征之间的区别。
属性或预测器是第一级输入变量,而特征可以是第一级或第二级。这里,第一级意味着预测器作为用于预失真响应或输出的输入变量。第二级意味着特征是预测器或输入变量的非线性变换,使用一些基或特征图来捕捉继承的特殊结构。
现在,从线性代数的角度来回答您的问题。如果特征的数量表示其维度$p>gt;n$,则样本数量n太小而不允许参数的精确估计。在$p>gt;n$线性模型的相关直线加速器系统$y=\textbf{X}\omega$是不确定的,并且具有无限多个解,因此我们可以使用最小范数解找到最佳解。
另一种方法是,我们假设模型是稀疏的,但是如果真正的模型是具有稀疏性度量$s<n$(底层模型中非零参数的数量),然后证明我们可以使用套索和相关方法有效地估计参数。