数据蛙数据分析每周作业statistical

机器学习(一) 线性回归

2019-05-10  本文已影响1人  晓迦

线性回归的基本形式

由给定的n个特征值组成的特征集示例x=(x1;x2;...;xn),其中xi是x在第i个特征上的取值,线性回归模型的目标是通过学得w1、w2...wn和b,来准确预测f(x)的值。
通俗的讲:线性回归就是找出一条直线,能够最大限度的拟合所有给定的特征值点。

误差

因为由特征集x=(x1;x2;...;xn)拟合得到的f(x),则预测值与实际值之间肯定存在误差。


误差\varepsilon独立并且具有相同的分布,并且服从均值为0方差为的高斯分布。
高斯分布的概率密度函数为:


由于误差服从高斯分布,则有:

似然函数

简单的解释:什么样的参数w,和已知的样本数据x(x1,x2,...,xn)组合之后,恰好是真实值,也就是似然函数取得最大值。由此将问题转化为求L(W)的最大值。
我们要让误差项越小越好,则要让似然函数越大越好。

将误差\varepsilon由实际值和预测值变换,则得到下面的式子:

引入似然函数:


对数似然:因为乘法难解,加法比较容易,所以对式子左右两边取对数。

为了使似然函数(对数似然函数)越大越好,则需要使J(\theta)越小越好。

损失函数

由以上的推导得出了,线性回归算法的损失函数:


线性回归问题转化成了怎样的参数\theta使损失函数的值最小。

怎样求\theta

方法1 对损失函数求偏导,使偏导等于0

注意点:根据公式求时,矩阵必须可逆。而且求解矩阵的逆十分耗费时间,所以,只有当特征值比较小的时候,才考虑使用此方法。
方法2 梯度下降法

每次参数调整的公式如下:


描述:对赋值,按照梯度最快的方向不断迭代,直到局部最优。

怎样调用?

from sklearn.linear_model import LinearRegression
model = LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)

参数解释:

总结

线性回归算法:y^{(i)}=\theta x^{(i)} + \varepsilon^{(i)}

上一篇 下一篇

猜你喜欢

热点阅读