机器学习(一)线性回归

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

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

线性回归

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_{\theta }\left( x\right) =\theta _{0}+\theta {1}x+\theta {2}x+\ldots +\theta {n}x$$
我们的目标就是在已知一些数据后,求出该方程的系数,即\(\theta _{0}\),\(\theta _{1}\),...,\(\theta _{n}\).

3、算法推导

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

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

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

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

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

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

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

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

posted @ 2017-07-26 22:10  谦芊珺  阅读(264)  评论(0编辑  收藏  举报