多变量线性回归(Linear Regression with Multiple Variables)

关键词
Multiple features、Gradient descent、Feature scaling、Learning rate、Polynomial regression、Normal equation

多维特征(Multiple Features)
前面我们学习了单变量线性回归,使用的例子是通过一个变量(及房子的大小size)来预测房价,如下图:

其对应的假设函数为:

而当我们对房价模型增加一些特征的时候,如 房间的数量、楼层数和房屋使用年限,如下图:

对此,我们分别令x1,x2,x3和x4表示房屋面积、房间的数量、楼层数和房屋使用年限,可以得到其假设函数表达式为: hθ(x) = θ0+θ1x1+θ2x2+θ3x3+θ4x4

由此我们可以得到多变量线性回归的表达式的一般形式:

为了方便后面用向量表示,这里令x0 = 1,可以得到:

令向量θ = [θ0 θ1 θ2 ··· θn]T,向量x = [x0 x1 x2 ··· xn]T,利用线性代数的知识我们很容易得到:

多变量梯度下降(Gradient Descent For Multiple Variables)

多变量梯度下降与单变量梯度下降思路基本一致,我们可以先构造出其代价函数J:

我们的目标与在单变量线性回归中一样,找出使得代价函数最小的一系列参数 θ0 θ1 θ2 ··· θn。在单变量线性回归中,我们引入梯度下降算法来找寻该参数。因此,在多变量线性回归中,我们依旧引入梯度下降算法:

特征缩放(Feature Scaling)
在多维特征的情况下,若我们保证这些特征都具有相近的尺度,则梯度下降算法能够更快地收敛

我们还是以房价预测为例,假设此处我们只使用两个特征,房屋的面积和房间的数量,房屋面积的取值范围为0 ~ 2000平方英尺,房间数量的取值范围为0 ~ 5。同时,我们以两个参数为横、纵坐标轴构建代价函数的等高线图:

可以看到等高图为瘦高的椭圆形,且根据图中红色线条可知,梯度下降算法需要较多次数迭代才能收敛

因此,为了让梯度下降算法更快的收敛,我们采用特征缩放和均值归一化的方法。特征缩放通过将特征变量除以特征变量的范围(即最大值减去最小值)的方法,使得特征变量的新取值范围仅为1,即-1 ≤ x(i) ≤1;均值归一化通过特征变量的值减去特征变量的平均值的方法,使得特征变量的新平均值为0。我们通常使用如下公式实现特征缩放和均值归一化:

注:其中μn表示某一特征的平均值,sn表示某一特征的标准差(或最大值与最小值间的差)

将上面的例子通过特征缩放后可以得到下图中右方的具有相近的尺度的等高线图,以此来帮助我们的梯度下降算法更快地收敛:

学习率α
选择合适的学习率是梯度下降算法正常工作的必要因素之一:如果学习率太小,我们可能要迭代很多步才能收敛;如果学习率太大,可能会导致每次迭代函数值反而还会增大,从而使得我们无法收敛到最小值。

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同。对于判断一个梯度下降算法是否收敛的问题,我们通常画出代价函数随着迭代步数增加的变化曲线来试着预测梯度下降算法是否已经收敛:

同时我们也可以进行一些自动收敛测试来判断是否收敛

注:自动收敛测试就是用一种算法来判断梯度下降算法是否收敛,通常要选择一个合理的阈值ε来与代价函数J(θ)的下降的幅度比较,如若代价函数J(θ)的下降的幅度小于这个阈值ε,则可判断梯度下降算法已经收敛。但这个阈值ε的选择是非常困难的,因此我们实际上还是通过观察曲线图来判断梯度下降算法是否收敛

特征和多项式回归(Features and Polynomial Regression)

我们可以通过多种方法来改变我们的假设函数的特征和形式,从而其能帮助我们来拟合非常复杂的函数,甚至是非线性函数,这种方法叫做多项式回归(Polynomial Regression)

比如有时我们想使用二次方模型(hθ(x) = θ0 + θ1x1 + θ2x22)来拟合我们的数据:

又有时我们想使用三次方模型来拟合我们的数据:

通常我们需要先观察数据然后来决定参数使用什么样的模型。

注:我们在使用多项式回归模型时,由于会对变量xi进行平方、立方等操作,因此我们有必要在运行梯度下降算法之前进行特征缩放。
eg. if x1 has range 1~1000 then range of x1^2 becomes 1~1000000 and that of x1^3 becomes 1~1000000000

正规方程(Normal Equation)

前面我们学习了通过梯度下降来求得最优的θ值,从而使得代价函数J(θ)最小化。而接下来我们要学习一种新的求解最优的θ值的方法——正规方程(Normal Equation)

我们还是使用课程中使用的房价预测的例子,下面是我们的训练数据,样本数量m=4,特征数量n=4

我们可以得到一个4×5 的矩阵X,和一个4×1的向量y(房价)

然后我们可以利用正规方程不需要迭代直接求得最优的θ值:

注:对于不可逆的矩阵(通常特征变量存在线性相关或特征变量数量过多,即特征变量数量大于训练集中的训练数据。),正规方程方法不可使用。

梯度下降与正规方程两种方法的比较:

由于吴恩达教授在视频中没有讲关于正规方程的推导过程,所以自己去找了一篇讲得比较清楚博客,感兴趣的可以去看看:正规方程推导

参考材料
Multiple Features
Gradient Descent For Multiple Variables
Feature Scaling
Learning Rate
Features and Polynomial Regression
Normal Equation

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

推荐阅读更多精彩内容