普通最小二乘

普通最小二乘法是一种在以下意义上找到最符合观察结果的特征的线性组合的方法。

如果要预测的结果向量是 y ,并且解释变量形成矩阵 X ,则 OLS 将找到向量 β 求解

分钟 β | Y 1 - Y | 2 2

其中 y ^ =Xβ 是线性预测。

在 sklearn 中,这是使用 sklearn.linear_model.LinearRegression 完成的。

应用背景

OLS 应该只应用于回归问题,它通常不适用于分类问题:对比度

  • 是垃圾邮件吗? (Classfication)
  • upvotes 之间的线性关系是什么取决于答案的长度? (回归)

让我们生成一个带有一些噪声的线性模型,然后看看 LinearRegression 管理是否重建线性模型。

首先我们生成 X 矩阵:

import numpy as np

X = np.random.randn(100, 3)

现在我们将 y 生成为 X 与某些噪声的线性组合:

beta = np.array([[1, 1, 0]])
y = (np.dot(x, beta.T) + 0.01 * np.random.randn(100, 1))[:, 0]

注意,生成 y 的真正线性组合由β给出。

要尝试仅从 Xy 重建这个,让我们做:

>>> linear_model.LinearRegression().fit(x, y).coef_
array([  9.97768469e-01,   9.98237634e-01,   7.55016533e-04])

请注意,此向量与 beta 非常相似。