美文网首页
线性回归算法

线性回归算法

作者: 阿ashang | 来源:发表于2019-03-30 21:12 被阅读0次

一、机器学习基本概念

1.有监督&无监督

\quad有监督学习和无监督学习的主要区别体现在用于训练的数据集是否有反馈值,即用于纠偏的正确答案。
\quad有监督学习通过学习输入数据(X)和输出数据(y)之间模式,建立模型进行分类或预测。比如逻辑回归、决策树等都是有监督分类。训练时通过模型预测值与实际值的误差进行参数优化求解。
\quad无监督学习直接输入数据(X)进行学习,通过数据之间的联系进行建模,比如聚类,通过距离衡量样本的相似性进行簇的划分。

2.泛化能力

\quad泛化能力指的是训练好的模型在未知数据集上的预测能力。即在训练集上表现很好的模型对于新的数据是否依然能有很好的预测准确率。

3.过拟合&欠拟合及解决方法

偏差:指预测输出与真实标记的差别;度量学习算法的期望预测与真实结果的偏离程度。
方差:刻画数据扰动所造成的影响;表示所有模型构建的预测函数,与真实函数的差别有多大。(可联想统计学中方差刻画的是数据集的离散程度。)


过拟合&欠拟合及解决方法.png

训练和测试的准确率都很差时,可能是因为数据量不够,可以尝试
增加样本量或交叉验证。
注:数据量是个相对的概念,需要结合特征维度去考量,当维度很高时,训练所需要的数据量呈指数级增加。

4.交叉验证

\quad一般情况下需要将数据集划分为训练集和测试集,在训练集上进行模型训练,在测试集上进行验证调优。但数据集划分具有随机性,模型偏误会依赖数据集的划分,不同的划分方法会产生不同的模型预测误差,参数选择也不同。因此提出了交叉验证的方法。
\quadk折交叉验证将数据集平均分为k份,每次选择其中一份作为测试集,用剩下的k-1份数据进行模型训练,共进行k次训练,最后使用平均误差衡量模型的性能。

二、损失函数vs代价函数vs目标函数

损失函数是针对单个样本来说的;
风险函数是损失函数的期望(经验风险);
目标函数:代价函数(经验风险)+正则化项(结构风险,衡量模型复杂度)

三、线性回归原理

1.简单线性回归

假设输入数据集D有n个样本,d个特征,则:
D=\lgroup{ (x^{(1)},y_1) , (x^{(2)},y_2) ...(x^{(n)},y_n) } \rgroup
其中第i个样本表示为:
(x^{(i)},y_i)=(x_1^{(i)},x_2^{(i)},...x_d^{(i)},y_i)
线性模型通过建立线性组合进行预测。我们的假设函数为:
h_\theta(x_1,x_2,...x_d)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_dx_d \qquad(1)
其中\theta_0,\theta_1...\theta_d为模型参数。
x_0=1x^{(i)}=(x_1^{(i)},x_2^{(i)},...x_d^{(i)})为行向量,令
X=\begin{bmatrix} x^{(0)}\\ x^{(1)}\\ \vdots\\ x^{(n)} \end{bmatrix}_{n \times d}, \theta=\begin{bmatrix} \theta_0\\ \theta_1\\ \vdots\\ \theta_d \end{bmatrix}_{d \times 1} , Y=\begin{bmatrix} y_1\\ y_2\\ \vdots\\ y_n \end{bmatrix}_{n \times 1}
Xn \times d维矩阵,\thetad \times 1维向量,则假设函数(1)式可表示为:
h_\theta(X)=X\theta
损失函数为均方误差,即
J(\theta)=\frac{1}{2} (X\theta - Y)^T (X\theta - Y)
最小二乘法求解参数,损失函数J(\theta)\theta求导:
\nabla J(\theta)=2X^T(X\theta-Y)
\nabla J(\theta)=0,得\theta=(X^TX)^{-1}X^TY

2.线性回归的正则化

为防止模型的过拟合,通常选择在损失函数加上正则化项。
线性回归的L1正则化为lasso,损失函数为:
J(\theta)=\frac{1}{2} (X\theta - Y)^T (X\theta - Y)+\alpha||\theta||_1
线性回归的L2正则化为岭回归,损失函数为:
J(\theta)=\frac{1}{2} (X\theta - Y)^T (X\theta - Y)+\frac{1}{2}\alpha||\theta||_2^2
其中\alpha为常数系数,需要调优。
L1范数不可导,因此不能用最小二乘或梯度下降法求解参数,一般用坐标轴下降法等求解。

四、 优化方法

1.梯度下降法

\quad梯度下降法常用来求解无约束最优化问题,是一种迭代方法:损失函数J(\theta)\theta为需要求解的参数;选取初值\theta_0,不断迭代更新\theta的值,进行损失函数的极小化。
将第t次迭代后的损失函数J(\theta^t)\theta^{t-1}处进行一阶泰勒展开:
J(\theta^t)=J(\theta^{t-1})+\nabla J(\theta^{t-1}) \Delta \theta
要想使J(\theta^t) < J(\theta^{t-1}),可取\Delta \theta=-\alpha \nabla J(\theta^{t-1})

则迭代公式为:
\theta^t=\theta^{t-1}+\Delta \theta =\theta^{t-1} - \alpha \nabla J(\theta^{t-1})
其中\alpha为步长。

2.牛顿法

将第t次迭代后的损失函数J(\theta^t)\theta^{t-1}处进行二阶泰勒展开:
J(\theta^t)=J(\theta^{t-1})+\nabla J(\theta^{t-1})\Delta \theta + \nabla ^2 J(\theta^{t-1}) \frac{\Delta \theta^2}{2}
为了简化问题,先假设参数是标量,将一阶导数和二阶导数分别记为gh,则有:
J(\theta^t)=J(\theta^{t-1})+g \Delta \theta + h \frac{\Delta \theta ^2}{2}
要使J(\theta ^t)最小化,即让g \Delta \theta + h \frac{\Delta \theta ^2}{2} 最小,对\Delta \theta求导,令其等于0,可得\Delta \theta=-\frac{g}{h},故:
\theta ^t = \theta ^{t-1} +\Delta \theta =\theta ^{t-1} - \frac{g}{h}
推广到向量形式,则迭代公式为:
\theta ^t=\theta ^{t-1} - H^{-1}g
其中H为海森矩阵。

3.拟牛顿法

\quad梯度下降法和牛顿法都需要计算梯度,如果存在不可导的情况则无法求解,因此拟牛顿法构造出了近似海森矩阵的正定对称阵,进行目标函数的优化。

五、评估指标

R-Square:R^2=\frac{回归平方和}{总平方和}
度量回归模型拟合程度,反应了因变量y的变差中被模型所解释的比例。
MSE:均方误差,即预测值与真实值之间误差平方和的均值。
RMSE:均方根误差。
MAE:平均绝对误差。

六、简单线性回归sklearn参数详解

                 from sklearn.linear_model import LinearRegression
简单线性回归参数.png

参考
https://blog.csdn.net/qq_28448117/article/details/79199835?from=singlemessage
https://www.cnblogs.com/pinard/p/6004041.html
https://zhuanlan.zhihu.com/p/24709748
https://blog.csdn.net/garfielder007/article/details/51646604
https://blog.csdn.net/u013704227/article/details/77604500
https://blog.csdn.net/hurry0808/article/details/78148756

相关文章

  • 机器学习算法总结

    回归算法 线性回归算法: 支持向量机&向前逐步回归&惩罚线性回归(岭回归/套索回归/ElasticNet/最小角度...

  • 机器学习系列(十一)——线性回归Linear Regressio

    线性回归算法 和knn算法不同,线性回归算法主要用于解决回归问题,它同样思想简单,实现容易,而且是许多强大的非线性...

  • 线性回归

    线性回归是机器学习算法的入门,通过该算法,管中窥豹,研究该算法的精髓之处。 线性回归 线性回归的损失函数为最小二乘...

  • 回归算法学习

    回归算法是机器学习中的经典算法之一,本文是对学习线性回归和逻辑回归算法进行的总结,线性回归与逻辑回归算法解决的分别...

  • 2019-10-29

    Day2 简单线性回归模型 机器学习入门--简单线性回归机器学习算法之线性回归算法 导入库matplotlib 绘...

  • 通俗地说逻辑回归【Logistic regression】算法(

    在说逻辑回归前,还是得提一提他的兄弟,线性回归。在某些地方,逻辑回归算法和线性回归算法是类似的。但它和线性回归最大...

  • 通俗得说线性回归算法(二)线性回归实战

    前情提要:通俗得说线性回归算法(一)线性回归初步介绍 一.sklearn线性回归详解 1.1 线性回归参数 介绍完...

  • 吴恩达机器学习(第一周)

    1.单变量线性回归(Linear Regression with One Variable) 1.1线性回归算法 ...

  • 常见回归算法

    sklearn作为机器学习中一个强大的算法包,内置了许多经典的回归算法。 线性回归 线性回归拟合一个带系数的线性模...

  • python机器学习从入门到精通(第2天)

    线性回归 线性回归的基本假设 了解一个算法,必须得了解算法的适用条件。在用线性回归之前,我们必须得知道在什么条件下...

网友评论

      本文标题:线性回归算法

      本文链接:https://www.haomeiwen.com/subject/ewjkbqtx.html