人工智能-线性回归1–损失函数、正规方程、梯度下降法人工智能-线性回归2–房价预测、欠拟合过拟合、正则化、模型保存加载
1,线性回归简介
线性回归分类:线性关系,非线性关系
2,线性回归API初步使用
from sklearn.linear_model import LinearRegression
#1,获取数据
x = [[80,86],
[70,86],
[85,86],
[80,66],
[80,76],
[90,86],
[80,82],
[70,76]]
y = [84,83,85,80,90,83,87,79,88]
#2,模型训练
#2.1 实例化一个估计器
estimator = LinearRegression()
#2.2 使用fit进行训练
estimator.fit(x,y)
# 打印回归系数
print('线性回归的系数是:\n',estimator.coef_)
#打印预测结果
print('预测结果是:\n',estimator.predict([[100,80]]))
3,求导
向量求导
4,线性回归的损失和优化
损失函数 :估计值与真实值的差平方和
如何使损失函数最小:正规方程、梯度下降
4.1 正规方程
推导方式1:
X是一个普通的矩阵,不一定有逆,方阵一定有逆,所以右乘X的转置推导方式2:
4.2 梯度下降法
在单变量的函数中,梯度是函数的微分,代表着函数在某个给定点的切线的斜率。
在多变量的函数中,梯度是一个向量,有方向,梯度的方向指出了函数在给定点的上升最快的方向
a是学习率,即步长。(步长太小–下山太慢;步长太大–容易跳过极小值)
算法选择:
- 小规模数据–正规方程or 岭回归
- 大规模数据 – 梯度下降法(算法复杂度)
5,梯度下降法方法介绍
特征:指样本中输入部分
种类:
- 全梯度下降算法FGD
更新时使用所有样本进行更新,计算训练集的所有样本误差,对其求和再取平均值作为目标函数。特点:速度慢 - 随机梯度下降算法SGD
每次只代入计算一个样本目标函数的梯度来更新权重,再取下一个样本重复此过程,直到损失函数值停止下降或者损失函数值小于某个可以容忍的阈值。
特点:容易遇上噪声样本,从而陷入局部最优解 - 小批量梯度下降算法mini-batch
每次从训练样本上随机抽取一个小样本集,在抽出的小样本集上采用FG迭代更新权重 - 随机平均梯度下降算法(SAG)
6,线性回归api再介绍
总结:
- 正规方程–sklearn.linear_model.LinearRegression()
- 梯度下降法–sklearn.linear_model.SGDRegressor()
y = kx+b k—回归系数 ,b–偏置