一、线性回归
- 对象
目标型是连续型数据 - 目的
试图学得一个通过属性(特征)的线性组合来进行预测的函数
𝑓(𝑥)=𝑤_1 𝑥_1+𝑤_2 𝑥_2+…+𝑤_𝑑 𝑥_𝑑+𝑏
其中,w为权重,b称为偏置项,可以理解为:𝑤_0×1 - 定义
线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析。
其中特点为一个或多个称为回归系数的模型参数的线性组合 - 分类
一元
线性回归:涉及到的变量(特征)只有一个
多元
线性回归:涉及到的变量(特征)两个或两个以上 - 通用公式
- 求解依据(最小化损失函数 J ( θ ) J(\theta) J(θ))
其中,𝑦_𝑖为第𝑖个训练样本的真实值,ℎ𝑤(𝑥_𝑖)为第𝑖个训练样本特征值组合预测函数
- 求解方法
1.正规方程
2.梯度下降法
3.岭回归
二、正规方程
- 求解公式
其中,X为特征矩阵,Y为目标值矩阵 - 使用的API
导包
:from sklearn.linear_model import LinearRegression
实例化
: le = LinearRegression() ----->估计器
训练过程
:le.fit(x_train,y_train)
查看参数
:le.coef_
查看均方误差
:
from sklearn.metrics import mean_squared_error
mean_squared_error(y_true, y_pred)
三、梯度下降法
-
原理:(以单变量为例 -->对 J ( θ ) J(\theta) J(θ)求偏导使其最小所得)
理解:沿 J ( θ ) J(\theta) J(θ)减小的方向一步一步采用迭代机制寻找最小值,找到 m i n ( J ( θ ) ) min(J(\theta)) min(J(θ))处对应的w参数
超参数:学习率 α \alpha α -
使用的API
导包
:from sklearn.linear_model import SGDRegressor
实例化
:sgdr = SGDRegressor() ---->估计器
训练过程
:sgdr.fit(x_train,y_train)
查看参数
:le.coef_
查看均方误差
:
from sklearn.metrics import mean_squared_error
mean_squared_error(y_true, y_pred)
注:所有样本均需进行标准化(特征值+目标值)
- 正规方程和梯度下降法的比较
小规模数据:LinearRegression(不能解决拟合问题)
大规模数据:SGDRegressor
四、岭回归
-
过拟合
定义:
一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)
原因:
学习到数据的特征过少
解决办法:
增加数据的特征数量 -
欠拟合
定义:
一个假设在训练数据上不能获得更好的拟合, 但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)
原因
:原始特征过多,存在一些嘈杂特征,
模型过于复杂是因为模型尝试去兼顾
各个测试数据点
解决办法
:
进行特征选择,消除关联性大的特征(很难做)
交叉验证(让所有数据都有过训练)
正则化(尽量减小高次项特征的影响–>减小高此项特征的次数)
-
岭回归
融合了正则化过程的一种回归估计器 -
使用的API
导包
:sklearn.linear_model.Ridge(alpha=1.0)
超参数:alpha表示正则化力度(决定高次项趋近于零的程度)
实例化
:.