功能越多,线性模型越完善

时间:2018-08-04 09:35:55

标签: machine-learning linear-algebra

基于Andreas C.Müller和Sarah Guido撰写的“ Python机器学习入门”一书第47页的这一段,我需要更多地了解特征数量与线性模型回归之间的关系:

”对于具有许多功能的数据集,线性模型可能非常强大。 特别是,如果您具有比训练数据点更多的功能,则任何目标y 可以完美地(在训练集上)建模为线性函数。

如何用线性代数解释?

谢谢

2 个答案:

答案 0 :(得分:1)

我可以尝试为您提供直观的答案。

想象一下,您有一个训练数据集,它由二维的单个数据点组成。在这种情况下,我们有n_data = 1(数据点数)和n_features = 2n_features> n_data)。训练数据集可以通过一维线性函数y = a0进行完美建模。

类似地,如果您具有三个要素(即三个维度)和两个数据点(因此n_features = 3> n_data = 2),那么这两个点总是可以用{{ 1}}。

在四个维度(四个特征)中,始终可以使用y = a0 + a1 x1形式的线性方程式定义的(超)平面对三个点进行建模。

通常,可以始终使用线性公式y = a0 + a1x1 + a2x2定义超平面(定义为尺寸小于其周围空间尺寸的任何平面)。因此,如果点的数量少于维度的数量,则总是可以找到一个超平面,因此,如果样本的数量小于特征的数量,则总是可以对一组训练数据进行建模。对应于空间的尺寸。

答案 1 :(得分:0)

此问题更适合Cross Validated社区。

此处的关键字为“在训练集上”

  

”对于具有许多功能的数据集,线性模型可能非常强大。   特别是,如果您的功能多于训练数据点,   任何目标 y 都可以完美地建模(在训练集上 )为   线性函数”,    Andreas C.Müller和Sarah Guido撰写的《 Python机器学习简介》

通常,特征多于数据点(或变量/预测数多于样本/观察值)导致model overfitting 。如果我们具有太多特征,则学习的假设可能非常适合训练集,但无法归纳为新的示例(在测试集上)。例如,考虑一个由1000个图像组成的数据集,每个图像具有300x300像素(1000个样本和90000个特征)。

预测值比观察值更多的问题(通常表示为 p> n )是,对于标准linear regression问题没有唯一的解决方案。 这就是线性代数的解释方式。如果数据点矩阵的行表示个案,而列表示预测变量,则矩阵的各列之间必然存在线性相关性。因此,一旦找到了预测变量 n 的系数,其他 pn 预测变量的系数就可以表示为这些第一个 n 的任意线性组合。强>预测变量。 LASSOridge regression之类的其他方法,或各种其他机器学习方法,都提供了在这种情况下进行的方法。

交叉验证中有一个不错的answer

  

当有更多模型时,当然有可能适合良好的模型   变量而不是数据点,但这必须小心。

     

当变量多于数据点时,可能不会出现问题   有一个独特的解决方案,除非受到进一步限制。那就是   可能是适合数据的多个(也许无限多个)解决方案   同样好。这样的问题称为ill-posed或   underdetermined例如,当变量多于   数据点,标准最小二乘回归有无限多个   在训练数据上实现零错误的解决方案

     

这样的模型肯定会过拟合,因为它对于   训练数据量。随着模型灵活性的提高(例如,更多   回归模型中的变量)和训练数据量   缩小,该模型将越来越有可能能够   通过适应训练中的随机波动来实现低误差   不代表真实的基础分布的数据。   因此,当模型在将来运行时,性能将很差。   数据来自同一分布。