线性回归的基本形式
由给定的n个特征值组成的特征集示例x=(x1;x2;...;xn),其中xi是x在第i个特征上的取值,线性回归模型的目标是通过学得w1、w2...wn和b,来准确预测f(x)的值。
通俗的讲:线性回归就是找出一条直线,能够最大限度的拟合所有给定的特征值点。
误差
因为由特征集x=(x1;x2;...;xn)拟合得到的f(x),则预测值与实际值之间肯定存在误差。
误差是独立并且具有相同的分布,并且服从均值为0方差为的高斯分布。
高斯分布的概率密度函数为:
由于误差服从高斯分布,则有:
似然函数
简单的解释:什么样的参数w,和已知的样本数据x(x1,x2,...,xn)组合之后,恰好是真实值,也就是似然函数取得最大值。由此将问题转化为求L(W)的最大值。
我们要让误差项越小越好,则要让似然函数越大越好。
将误差由实际值和预测值变换,则得到下面的式子:
引入似然函数:
对数似然:因为乘法难解,加法比较容易,所以对式子左右两边取对数。
为了使似然函数(对数似然函数)越大越好,则需要使J()越小越好。
损失函数
由以上的推导得出了,线性回归算法的损失函数:
线性回归问题转化成了怎样的参数使损失函数的值最小。
怎样求?
方法1 对损失函数求偏导,使偏导等于0
注意点:根据公式求时,矩阵必须可逆。而且求解矩阵的逆十分耗费时间,所以,只有当特征值比较小的时候,才考虑使用此方法。
方法2 梯度下降法
每次参数调整的公式如下:
描述:对赋值,按照梯度最快的方向不断迭代,直到局部最优。
怎样调用?
from sklearn.linear_model import LinearRegression
model = LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
参数解释:
- fit_intercept:是否有截据,如果没有则直线过原点;
- normalize:是否将数据归一化;
- copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写;
- n_jobs:默认值为1。计算时使用的核数;
总结
线性回归算法:
- 我们要找到一种算法来求,使模型预测效果最好。
- 假设误差属于高斯分布,得出误差的概率密度,
- 公式变换,得到实际值与预测值之间的关系
- 引入似然函数,即让似然函数的值越大越好
- 为了方便计算,左右两边取对数
- 得到线性回归算法的损失函数
- 针对损失函数优化值
参考:机器学习之线性回归
机器学习之梯度下降法
网友评论