线 性 回 归

实验目的

感知机算法以及二分类的理论基础后学习了线性回归。
如果是正常机器学习的流程当前学习进度,本次实验是我们第一次接触机器学习中的回归问题。
在这里插入图片描述

实验原理

分类:输出离散
回归:输出连续
回归常被称为拟合。
拟合出来是直线的就称为线性回归,如下图,因为拟合出来的是直线,所以被称为线性回归。
在这里插入图片描述
线性回归的假设空间:
在这里插入图片描述
与感知机的假设空间对比一下,发现他是少了阶跃(sign)函数。
在这里插入图片描述
两者的经验误差都遵循经验误差最小原则。
线性回归的经验误差是由最小二乘法(最小二乘法是线性回归的最佳线性无偏估计)求得:
将数据集D中所有点与该直线的误差加起来,再进行算术平均就是该直线在数据集D上的经验误差。在这里插入图片描述

|D|这里是数据集种数据的总和。
有了经验误差函数之后,就可以利用上一单元介绍的经验误差最小原则来设计算法,从而在假设空间H中挑选离h最近的作为g:

实验过程

解决高尔顿的孩子身高问题在这里插入图片描述

具体的编程实现:
1用sympy实现

from sympy import symbols, diff, solve
import numpy as np

# 数据集 D
X = np.array([1.51, 1.64, 1.6, 1.73, 1.82, 1.87])
y = np.array([1.63, 1.7, 1.71, 1.72, 1.76, 1.86])

# 构造经验误差函数
w, b = symbols('w b', real=True)
RDh = 0
for (xi, yi) in zip(X, y):
	RDh += (yi - (xi*w + b))**2
RDh *= 1/len(X)

# 对 w 和 b 求偏导
eRDhw = diff(RDh, w)
eRDhb = diff(RDh, b)

# 求解方程组
ans = solve((eRDhw, eRDhb), (w, b))
print('使得经验误差函数 RD(h) 取最小值的参数为:{}'.format(ans))

2用sklearn中的封装的最小二乘法实现:

from sklearn.linear_model import LinearRegression
import numpy as np
x = np.array([1.51, 1.64, 1.6, 1.73, 1.82, 1.87])
y = np.array([1.63, 1.7, 1.71, 1.72, 1.76, 1.86])
model = LinearRegression()
model.fit(x.reshape(len(x), 1), y)     # 矩阵转置
print('截距:',model.intercept_,'系数:',model.coef_)

到这里我们意识到y是上帝函数f的函数值,即:y=f(x)这种思想在线性回归中无法套用,在线性回归中y看作服从P(Y|X)的条件分布。
在这里插入图片描述
在这里插入图片描述
Y|X未知,所以又被称为上帝分布。
和二分类类似,最小二乘法是最佳线性无偏估计,且线性回归的 d v c ≠ ∞ d_{vc}\ne\infty dvc=(即存在断点),以上条件都满足,所以线性回归是可学习。
如果有多个特征扩展到多个特征就有了多元线性回归。

实验结果

使得经验误差函数 RD(h) 取最小值的参数为:{w: 0.514133333333440, b: 0.858543999999819}
发现利用线性回归对波士顿房价进行预测时,高价房的预测效果不佳,以后的机器学习中国会尝试用非线性回归来提升预测效果。

批阅人
分数
时间2021年12月31日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值