机器学习(一)线性回归

机器学习算法(一)线性回归

本文主要梳理一下线性回归和逻辑斯蒂回归这两大算法。这两个算法的关系是什么呢?答案是并没有什么关系。
这样说其实也不对,逻辑斯蒂回归里有线性回归的重要组成部分。但是二者又一个本质区别,就是线性回归是一个“回归”算法,而逻辑斯蒂回归是一个“分类”算法。这就导致两个算法永远像牛郎织女一样隔着银河。本文主要介绍线性回归,下篇文章会在本文的基础上介绍逻辑斯蒂回归。本文思路主要来自邹博的机器学习课程。本文为作者自己学习整理的笔记,转载请注明出处。

线性回归

1、输入描述:

有训练数据集D,其中共有m条数据,n个特征,如下表所示。

数据id 数学 语文 英语 物理
学生1 98 92 96 83
学生2 95 79 86 23
... 34 35 92 92
学生m 67 68 94 72

上表是一个数据表的简单示例,其中包含m条数据,每条数据代表了一名学生;4个特征,分别是数学成绩、语文成绩、英语成绩、物理成绩。

以上是一个具体的表格,我们可以抽象表格如下:

数据id 属性1 属性2 ... 属性n 预测值
1 x11 x12 ... x1n y1
2 x21 x22 ... x2n y2
... ... ... ... ... ...
m xm1 xm2 ... xmn ym

对于其中的某一条数据,可以认为如下:

属性1 属性2 ... 属性n 预测值
x1 x2 ... xn y

2、问题描述

线性回归就是要解决以下问题:

要建立一如下公式1:
$$y=h_{ heta }left( x ight) = heta _{0}+ heta {1}x{1}+ heta {2}x{2}+ldots + heta {n}x{n}$$
我们的目标就是在已知一些数据后,求出该方程的系数,即( heta _{0}),( heta _{1}),...,( heta _{n}).

3、算法推导

上面公式1可做如下变形(公式2)$$widehat{y}=h_{ heta }left( x ight) =sum ^{n}_{i=1} heta {i}x{i}= heta ^{T}x$$

对于数据标签的真实值,我们可以设为(y),而对于数据用公式1和所有(x)计算得到的值为估计值,设为(widehat{y}).

因此有公式3$$y=widehat {y}+varepsilon $$

其中,这个(varepsilon)可以认为是噪声。

根据中心极限定理,我们可以认为这个(varepsilon)服从正态分布,即$$varepsilon sim Nleft( 0,sigma ^{2} ight) $$
因此,有公式4$$Pleft( varepsilon ight) =dfrac {1}{sqrt {2pi sigma }}expleft( -dfrac {varepsilon ^{2}}{2sigma ^{2}} ight) $$
因为$$varepsilon=y-widehat {y}$$
带入公式4,将(varepsilon)(x)视为常数,则可将(Pleft( varepsilon ight))看成是关于( heta)的函数。即$Pleft( varepsilon ight) =gleft( heta ight) ( 根据最大似然定理,可得关于) heta(的似然函数为公式5)$Lleft( heta ight) =prod ^{m}{i=1}dfrac {1}{sqrt {2pi }sigma }expleft( -dfrac {left( y^{i}- heta {T}x{i} ight) ^{2}}{2sigma ^{2}} ight) $$
其中,(i)表示第(i)条数据。该式中,仅( heta)为未知量,我们要做的事就是求出一组( heta),使(Lleft( heta ight))最大。
对于公式5,可以对其取(log)求出其对数似然函数。对其对数似然函数可以进一步化简,最终,我们可得到如下的目标函数(公式6):求出一组( heta)使$$Jleft( heta ight) =dfrac {1}{2}sum ^{m}
{i=1}left( heta {T}x{i}-y^{i} ight) ^{2}$$最小。
此处略去求解过程,该式的解决方式是令(Jleft( heta ight))( heta)求导并令其等于0。最后可求得公式7:$$ heta =left( x^{T}x ight) {-1}x{T}y$$
当以公式6为目标函数时,并没有考虑过拟合的问题。若想减少过拟合风险,可以对该目标函数加入正则项,常用的方法有以下两种:
1、L1正则(又称LASSO回归)
其目标函数是公式8:$$Jleft( heta ight) =dfrac {1}{2}sum ^{m}{i=1}left( heta {T}x{i}-y^{i} ight) ^{2}+lambda sum ^{n}{j=1}left| heta _{j} ight| $$

2、L2正则(又称岭回归)
其目标函数是公式9:$$Jleft( heta ight) =dfrac {1}{2}sum ^{m}{i=1}left( heta {T}x{i}-y^{i} ight) ^{2}+lambda sum ^{n}{j=1} heta ^{2}_{j}$$

实际上,一般用公式7直接求出( heta)是很难的。一般我们会采用梯度下降的方法来求出一个局部最优的( heta)

综上,线性回归的目标函数为:公式6、公式8或公式9。即$$loss=Jleft( heta ight) =dfrac {1}{2}sum ^{m}{i=1}left( heta {T}x{i}-y^{i} ight) ^{2}$$或$$loss=Jleft( heta ight) =dfrac {1}{2}sum ^{m}{i=1}left( heta {T}x{i}-y^{i} ight) ^{2}+lambda sum ^{n}{j=1}left| heta {j} ight| $$或$$loss=Jleft( heta ight) =dfrac {1}{2}sum ^{m}{i=1}left( heta {T}x{i}-y^{i} ight) ^{2}+lambda sum ^{n}{j=1} heta ^{2}_{j}$$

原文地址:https://www.cnblogs.com/Yolanda7171/p/7242303.html