机器学习入门(五)——多元线性回归

1.0 模型介绍

        在机器学习入门(三)——简单线性回归中,介绍了只有一个自变量的线性回归方程的构建思路以及推到过程。这一章在此基础上,多简单线性回归进行扩展,增加了自变量的数量,即多元线性回归

y^i= \alpha  + \beta_{1} x_{1}^i + \beta_{2} x_{2}^i + ... + \beta_{j} x_{j}^i+...+\beta_{n} x_{n}^i+\varepsilon^i          (i = 1,2,...m)

        此时,自变量不再是一个列数字,而是包含n列的向量,每一个因变量y^i是由n个自变量一个常数项\alpha 以及残差\varepsilon ^i共同决定的(残差,也称扰动项,可以理解为无法被回归方面解释的那一部分误差)。

1.1 前提条件

        统计上严格来讲,多元线性回归时需要严格考察适用条件,这里只简单介绍下,因为实际工作中可以方框对适用条件的考察,但学术中需要严格遵守。

        首先,\varepsilon^i应当满足分布正态性、方差齐性以及独立性的要求。

        其次,各个自变量x_{j}之间应min\sum_{i=1}^m(y^i-\hat{y} ^i)^2当相互独立(即统计上常说的没有共线性)。

        事实上,统计上很多操作的情况下都有上述这些要求,比如方差分析。这里就不在过多阐述,因为现实情况中很少存在严格符合这些条件的情况,因此通常通过绘制残差直方图对于有个大致的判断即可。而自变量间只要没有特别直接的关联,也可姑且认为是相互独立的。

2.0 建模思路

        与简单线性回归方差的思路类似,也是通过寻找令损失函数\sum_{i=1}^m(y^i-\hat{y} ^i)^2最小的一组系数(\alpha , \beta _{1}, \beta _{2}...\beta _{n})来进行。最小二乘法在这里同样适用,此时目标函数为:

min\sum_{i=1}^m(y^i -(\alpha + \beta_{1} x_{1}^i + \beta_{2} x_{2}^i + ... + \beta_{n} x_{n}^i))^2

         分别就(\alpha , \beta _{1}, \beta _{2}...\beta _{n})对目标函数求导,得到n+1的等式:

\frac{d L(\alpha,\beta_{j}  )}{d\alpha }  = \sum_{i=1}^m(y^i - \hat{y}^i ) =0

\frac{d L(\alpha,\beta_{j}  )}{d\beta _{j} }  = \sum_{i=1}^m(y^i - \hat{y}^i ) x_{j}^i =0          (j = 1,2,...n)

        整理可得:

\alpha n + \beta _{1}\sum_{i=1}^mx_{1}^i + \beta _{2}\sum_{i=1}^mx_{2}^i...\beta _{n}\sum_{i=1}^mx_{n}^i =  \sum_{i=1}^my^i

\alpha\sum_{i=1}^mx_{1}^i   + \beta _{1}\sum_{i=1}^mx_{1}^ix_{1}^i + \beta _{2}\sum_{i=1}^mx_{1}^ix_{2}^i...\beta _{n}\sum_{i=1}^mx_{1}^ix_{n}^i =  \sum_{i=1}^mx_{1}^iy^i

\alpha\sum_{i=1}^mx_{2}^i   + \beta _{1}\sum_{i=1}^mx_{2}^ix_{1}^i + \beta _{2}\sum_{i=1}^mx_{2}^ix_{2}^i...\beta _{n}\sum_{i=1}^mx_{2}^ix_{n}^i =  \sum_{i=1}^mx_{2}^iy^i

                     ......                    ......                    ......                    ......    

\alpha\sum_{i=1}^mx_{n}^i   + \beta _{1}\sum_{i=1}^mx_{n}^ix_{1}^i + \beta _{2}\sum_{i=1}^mx_{n}^ix_{2}^i...\beta _{n}\sum_{i=1}^mx_{n}^ix_{n}^i =  \sum_{i=1}^mx_{n}^iy^i

        向量化,可得X^TXb= X^TY,于是有b= (X^TX)^{-1} X^TY



2.1 sklearn中的线性回归

        sklearn中的线性回归包适用于简单线性回归和多元线性回归,仅仅是自变量的输入维度不一样:


from sklearn.linear_model import LinearRegression

linear_reg = LinearRegression()

linear_reg.fit(X_train, y_train)

linear_reg.intercept_   # 常数项

linear_reg.coef_   # 回归系数项

y_predict = linear_reg.predict(X_train)

linear.score(y_train, y_predict)   # r_squared值


3.0 多项式回归

        在线性回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。多项式就是指回归方程中存在自变量的高次项。

        sklearn中的多项式回归,本质上还是用PolynomialFeatures转换器转化成多元线性回归来实现,如将[x1,x2]转换为[1, x1, x2, x1^2, x1x2, x2^2]。


import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

from sklearn.preprocessing import PolynomialFeatures

X_train = [[6], [8], [10], [14], [18]]

y_train = [[7], [9], [13], [17.5], [18]]

regressor = LinearRegression()

regressor.fit(X_train, y_train)

xx = np.linspace(0,26,100)

yy = regressor.predict(xx.reshape(-1,1))

quadratic = PolynomialFeatures(degree = 2)

X_train_quadratic = quadratic.fit_transform(X_train)

quadratic_reg = LinearRegression()

quadratic_reg.fit(X_train_quadratic, y_train)

xx_quadratic = quadratic.fit_transform(xx.reshape(-1,1))

yy_quadratic = quadratic_reg.predict(xx_quadratic)

plt.plot(X_train, y_train, 'k.', label="train")

plt.plot(xx, yy, label="y=ax+b")

plt.plot(xx, yy_quadratic, 'r-', label="y=ax^2+bx+c")

plt.legend()

plt.show()



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