算法系列——有监督学习——1.线性回归

一、背景

1. 学习参数:

直线可写为y=w0+w1*x。这是一次函数,w1是斜率(或者叫权重 ),w0相当于在y轴上的截距。斜率w1和截距w0是由有监督学习的算法学到的参数,称之为学习参数。在线性回归中,需要根据不在一条直线上的点求出学习参数。

2. 损失函数:

表示误差和学习参数之间关系的函数叫作误差函数(或损失函数)

线性回归需要在各条直线中找出使误差函数值最小的参数

二、案例

尝试对以下数据进行线性回归。使用LinearRegression类创建线性回归模型,并使用fit方法训练后,输出intercept_的值以查看截距,输出coef_的值以查看斜率。

from sklearn.linear_model import LinearRegression
X = [[10.0], [8.0], [13.0], [9.0], [11.0], [14.0],
     [6.0], [4.0], [12.0], [7.0], [5.0]]
y = [8.04, 6.95, 7.58, 8.81, 8.33, 9.96,7.24, 4.26, 10.84, 4.82, 5.68]
model = LinearRegression()
model.fit(X, y)
print(model.intercept_)  # 截距
print(model.coef_)  # 斜率
y_pred = model.predict([[0], [1]])
print(y_pred) # 对x=0, x=1的预测结果

输出如下:

三、线性回归不成功的例子

如图显示,对安斯库姆四重奏数据集的每一组数据分别进行线性回归的结果。尽管图中的4张图是不同的散点图,但线性回归的学习参数(截距和斜率)却相同。另外,这些数据的平均值、方差和相关系数也几乎相同。

注意:对原本不遵循线性分布的数据强行进行线性回归也得不到好的结果。拿到数据之后,首先应该进行可视化,再考虑是否进行线性回归。

四、学习参数的求法

通过均方误差进行定量判断。均方误差指的是目标变量和直线的差的平方的平均值。当存在n个数据时,可如下表示:

如何获得使均方误差最小的学习参数:

由于学习参数的变化,作为误差函数的均方误差也会发生变化。也就是说,均方误差可以使用学习参数的函数表示:

这时将训练数据代入目标变量yi和特征变量xi,就可以仅用w0、w1表示均方误差:

该式是w0 、w1 的二次函数,当w0 、w1 发生变化时,误差的值也各不相同。函数图形如图所示

本文主要说明了一元回归。一元回归是指独立特征变量只有一个时的线性回归,独立特征变量为两个及以上时的线性回归叫作多元回归。另外,尽管独立特征变量只有一个,但包含x^{2}x^{3}这种特征变量的次方项的线性回归叫作多项式回归。

非线性回归的例子

如图所示这些函数中的学习参数w1和目标变量y之间的关系不是线性关系,所以被分类为非线性回归。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿梭的编织者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值