线性模型--普通最小二乘法

本文介绍了线性模型在回归问题中的应用,特别是普通最小二乘法(OLS)。线性回归通过寻找最佳的参数w和b,使预测值与真实值之间的均方误差最小。文中展示了在一维wave数据集上的例子,解释了coef_和intercept_属性,并讨论了模型在波士顿房价数据集上的过拟合问题,为后续的岭回归铺垫。
摘要由CSDN通过智能技术生成

一、模型介绍

线性模型是在实践中广泛使用的一类模型,该模型利用输入特征的线性函数进行预测。

二、用于回归的线性模型

以下代码可以在一维wave数据集上学习参数w和b,w是斜率,b是截距。

import mglearn 
mglearn.plots.plot_linear_regression_wave()

在这里插入图片描述
我们在图中添加了坐标网格,便于理解直线的含义。w的值是0.39,b的值是-0.03。
用于回归的线性模型可以表示为这样的回归模型:对单一特征的预测结果是一条直线,两个特征时是一个平面,或者在更高维度(即更多特征)时是一个超平面。
对于有多个特征的数据集而言,线性模型可以非常强大。特别地,如果特征数量大于训练数据点的数量,任何目标y都可以(在训练集上)用线性函数完美拟合。
有许多不同的线性回归模型。这些模型之间的区别在于如何从训练数据中学习参数w和b,以及如何控制模型复杂度。下面介绍最常见的线性回归模型。

2.1 线性回归(普通最小二乘法)

线性回归,或者普通最小二乘法(ordinary least squares, OLS),是回归问题最简单也最经典的线性方法。线性回归寻找参数w和b,使得对训练集的预测值与真实的回归目标值y之间的均方误差最小。均方误差是预测值与真实值之差的平方和除以样本数。线性回归没有参数,这是一个优点,但也因此无法控制模型的复杂度。
以下代码可以生成一个简单的线性回归模型:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
X, y = mglearn.datasets.make_wave(n_samples=60)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

model = LinearRegression()
model.fit(X_train, y_train)

“斜率”参数(w,也叫做权重或系数)被保存在coef_属性中,英文单词coef就是属性的意思,而截距(b)或偏移被保存在intercept_属性中,英文单词intercept的意思是拦截、阻截的意思。
在这里插入图片描述
intercept_属性是一个浮点数,而coef_属性是一个NumPy数组,每个元素对应一个输入特征。由于wave数据集中只有一个输入特征,所以model.coef_中只有一个元素。
再来看一下训练集和测试集的性能:
在这里插入图片描述
R²约为0.66,这个结果不是很好,但我们可以看到,训练集和测试集上的分数非常接近。这说明可能存在欠拟合,而不是过拟合。对于这个一维数据集来说,过拟合的风险很小,因为模型非常简单(或受限)。然而,对于更高维的数据集(即有大量特征的数据集),线性模型将变得更加强大,过拟合的可能性也会变大。我们来看一下LinearRegression在更复杂的数据集上的表现,比如波士顿房价数据集,这个数据集有506个样本和105个导出特征,代码如下:

X, y = mglearn.datasets.load_extended_boston()
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
model = LinearRegression().fit(X_train, y_train)

在这里插入图片描述
线性回归模型在训练集上的预测非常准确,但测试集上的R²明显低一些。训练集和测试集之间的性能差异是过拟合的明显标志,因此我们应该试图找到一个可以控制复杂度的模型。标准线性回归最常用的替代方法之一就是岭回归,下篇博客中将详细介绍岭回归。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值