机器学习笔记(5):线性回归

本文来自之前在Udacity上自学机器学习的系列笔记。这是第5篇,介绍了监督学习中的线性回归模型。

线性回归
回归这一个概念,在百度百科的解释是“发生倒退或表现倒退;常指趋于接近或退回到中间状态”。一开始指的是孩子的身高有趋于平均身高的现象。比如说,长得比较高的父母,生出来的孩子的身高一般会向平均值回落。因为这些长得比较高的父母,身高比平均值要高并不是大概率出现的事件。

当发现了这一现象后,人们开始将这个发现应用于其他地方。人们采集数据,然后绘制成散点图,研究数据之间的关系。久而久之,人们将数据之间的关系用函数关系表示,由此形成了数学上的回归的含义,即研究一组变量与另一组变量之间的关系,并使用函数方式表达出来。

所以,当我们遇到这样的问题,即知道一组自变量和另一组因变量之间的对应关系了,然后想研究新的自变量出现时,要预测对应的因变量的值,我们就可以使用线性回归。例如,不同年龄有不同的净资产。那么给定一个新的年龄,他的净资产有多少呢?

线性回归模型
如下图所示,我们想研究年龄和净资产的关系。对于一组给定的(年龄,净资产)数据点,我们制作了散点图。观察数据后我们可以预估一个线性回归模型(直线)可以满足。

净资产与年龄的模型

模型
假设:h_\theta(x)=\theta_0+\theta_1x
求解:\theta_i,\ i=1,2

其中x表示自变量,也就是这个例子中的年龄,h_\theta(x)表示因变量,表示净资产。


问题
我们将上面的模型转换为求解下面的最小值问题:
min \sum_{i=1}^{m}[h_\theta(x^{(i)})-y^{(i)}]^2

一般,求解线性模型的最小值问题,我们有梯度下降法和最小二乘法。下面分别介绍。


J(\theta_0, \theta_1)=\frac{1}{2m} \sum_{i=1}^{m}[h_\theta(x^{(i)}-y^{(i)}]^2


算法一:梯度下降法
给定\theta_0, \theta_1的初始值,然后不断地更新,使得J(\theta_0, \theta_1)不断地减少,直到小于某给定足够小的值。更新策略为:
\theta_j:=\theta_j-\alpha \frac{\partial}{\partial\theta_j}J(\theta_0, \theta_1) \quad (j=0, 1)

其中\alpha是学习速率(Learning rate)。

\frac{\partial}{\partial \theta_0}J(\theta_0, \theta_1) = \frac{\partial}{\partial \theta_0} \frac{1}{2m} \sum_{i=1}^{m} [h_\theta(x^{(i)})-y^{(i)}]^{2}

=\frac{1}{m} \sum_{i=1}^{m}[h_\theta(x^{(i)})-y^{(i)}] \frac{\partial}{\partial \theta_0}(\theta_0+\theta_1 x^{(i)}-y^{(i)})

=\frac{1}{m} \sum_{i=1}^{m}[h_{\theta}(x^{(i)})-y^{(i)}]

\frac{\partial}{\partial \theta_1}J(\theta_0, \theta_1) = \frac{\partial}{\partial \theta_1} \frac{1}{2m} \sum_{i=1}^{m} [h_\theta(x^{(i)})-y^{(i)}]^{2}

=\frac{1}{m} \sum_{i=1}^{m}[h_\theta(x^{(i)})-y^{(i)}] \frac{\partial}{\partial \theta_1}(\theta_0+\theta_1 x^{(i)}-y^{(i)})

=\frac{1}{m} \sum_{i=1}^{m}[h_{\theta}(x^{(i)})-y^{(i)}]x^{(i)}

如果令x_0=1,那么\theta_j的更新公式为:

\theta_j:=\theta_j-\frac{\alpha}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}]

推广到n\theta的情况。
样本数据:(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), \ldots, (x^{(m)}, y^{(m)})
假设:
h_\theta(x)=\theta^Tx = \theta_0x_0+ \theta_1x_1+ \cdots +\theta_nx_n
其中,\theta \in \mathbb{R}^{n+1}

J(\theta)=\frac{1}{2m} \sum_{i=1}^{m}[h_\theta(x^{(i)}-y^{(i)}]^2
\theta_j:=\theta_j-\alpha \frac{\partial}{\partial\theta_j}J(\theta)

\theta_j:=\theta_j-\frac{\alpha}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}]

其中\theta_j保持同步地更新。

梯度下降法的具体推到涉及到高数中的泰勒公式,而其原理则是基于方向导数和梯度的定义。这里就不展开了。


算法二:最小二乘法
在高数书中定义了最小二乘法,即根据偏差的平方和为最小的条件来求解其中的常数的方法称为最小二乘法(Ordinary Least Equation)。而正规方程(Normal Equation)就是这里所说的条件表达为有确定解的代数方程式。

根据定理:设函数z=f(x,y)在点(x_0,y_0)具备偏导数,且在点(x_0,y_0)处有极值,则有
f_x(x_0,y_0)=0, \quad f_y(x_0,y_0)=0

这两个方程组成了正规方程。

所以对于\theta \in \mathbb{R}^{n+1}
J(\theta)=\frac{1}{2m} \sum_{i=1}^{m}[h_\theta(x^{(i)}-y^{(i)}]^2


\frac{\partial}{\partial \theta_j}J(\theta)=\cdots=0 \quad (j=1, \ldots, n)

求解\theta_0, \theta_1, \ldots, \theta_n

按照上面的条件可以推导得到:
\theta = (X^TX)^{-1}X^Ty
其中X,y都是样本数据的矩阵表达式。具体可以参考
http://mathworld.wolfram.com/NormalEquation.html

在scikit-learn中实现了线性回归模型的库:
https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容