我需要更多地了解特性数量与线性模型回归之间的关系,基于Andreas C. Müller和Sarah Guido所著的“机器学习与Python入门”一书第47页的这一段:
对于具有许多特征的数据集,线性模型可能非常强大。特别是,如果你有比训练数据点更多的特征,那么任何目标y都可以完美地建模(在训练集上)为一个线性函数。
它是如何用线性代数来解释的?
谢谢
发布于 2018-08-04 11:50:53
我可以试着给你一个直观的答案。
假设您有一个训练数据集,由一个二维的单个数据点组成。在本例中,我们有n_data = 1 (数据点的数量)和n_features = 2 (n_features > n_data)。训练数据集可以用一维线性函数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来定义。因此,如果点数小于维数,则总是可以找到超平面,因此,如果样本数小于特征数(特征数对应于空间维数),则始终可以建模一组训练数据。
发布于 2019-06-29 12:34:15
这个问题更适合于交叉验证社区。
这里的关键字是“在训练集上”!
“对于具有许多特征的数据集,线性模型可能非常强大。特别是,如果你拥有比训练数据点更多的特征,任何目标y都可以完美地建模(on the training )作为一个线性函数”,Andreas . Müller和Sarah Guido著。
通常,比数据点(或比样本/观测更多的变量/预测器)更多的特性导致了 模型过度拟合。如果我们有太多的特征,学习的假设可能非常适合训练集,但不能推广到新的例子(在测试集上)。例如,考虑一个由1000个图像组成的数据集,每个图像都有300x300像素(1000个样本和90000个特征)。
与观察(通常表示为p>n)相比,预测器更多的问题是标准线性回归问题没有唯一的解决方案。,这就是用线性代数来解释的。,如果数据点矩阵的行表示情况,列表示预测,则矩阵的列之间必然存在线性依赖关系。因此,一旦你找到了预测器的n的系数,其他p预测器的系数就可以表示为第一个n预测器的任意线性组合。其他方法,如LASSO或ridge regression,或各种其他机器学习方法,提供了在这种情况下进行学习的方法。
在交叉验证中有一个很好的回答:
当变量多于数据点时,当然有可能拟合好的模型,但这必须小心。 当变量多于数据点时,除非进一步限制,否则问题可能没有唯一的解决方案。也就是说,可能有多个(可能无限多)解决方案同样适合数据。这样的问题称为
ill-posed或underdetermined。例如,当变量多于数据点时,标准最小二乘回归有无穷多的解决方案,在训练数据上实现零误差。 这样的模型肯定会过于适合,因为它对于培训数据量来说“太灵活了”。随着模型灵活性的增加(例如,回归模型中的更多变量)和训练数据量的减少,该模型越来越有可能通过拟合不代表真实的基本分布的训练数据的随机波动来实现较低的误差。因此,当模型运行于来自同一发行版的未来数据时,性能将很差。
发布于 2021-10-07 04:22:33
在此之前,讨论了特征数与线性模型回归的关系,明确了属性或预测因子与特征之间的区别。
属性或预测器是第一级输入变量,而特征可以是第一级或第二级。在这里,第一级意味着预测器作为预测响应或输出的输入变量。第二级指的是特征作为预测器或输入变量的非线性变换,使用某种基或特征映射来捕获继承的特殊结构。
现在,从线性代数的角度来回答你的问题。如果特征数表示为维数$p>>n$,则样本数n太小,无法精确估计参数。在$p>>n$的情况下,线性模型的关联线性系统$y=\textbf{X}\omega $是欠定的,且有无穷多个解,所以我们可以用最小范数解找到最优解。
另一种方法是,假设模型是稀疏的,但如果真实模型是稀疏测度的$s
https://stackoverflow.com/questions/51684309
复制相似问题