機器學習 Day 3 | Multiple Linear Regression

機器學習第三天 多元線性回歸

數(shù)據(jù)集下載地址
https://www.xiehaoo.com/media/record/pinke/2018/08/50_Startups.csv

多元線性回歸嘗試通過用一個線性方程來適配觀測數(shù)據(jù),這個線性方程是在兩個以上(包括兩個)的特性和響應之間構(gòu)建的一個關(guān)系。多元線性回歸的實現(xiàn)步驟和簡單線性回歸很相似吉捶,在評價部分有所不同。你可以用它來找出在預測結(jié)果上哪個因素影響力最大憋槐,以及不同變量是如何相互關(guān)聯(lián)的。

設(shè)想
想要有一個成功的回歸分析淑趾,確認這些假定很重要阳仔。

1、線性:自變量和因變量的關(guān)系應該是線性的(即特征值和預測值是線性相關(guān)的)

2、保持誤差項的方差齊性(常數(shù)方差):誤差項的分散(方差)必須等同

3近范、多元正態(tài)分布:多元回歸假定殘差符合正態(tài)分布嘶摊。

4昂羡、缺少多重共線性:假設(shè)數(shù)據(jù)有極少甚至沒有多重共線性箱叁。當特征(或自變量)不是相互獨立時击儡、會引發(fā)多重共線性枝誊。

虛(擬)變量
在多元回歸模型中、當遇到數(shù)據(jù)集是非數(shù)值數(shù)據(jù)類型時针史,使用分類數(shù)據(jù)是一個非常有效的方法罗丰。
分類數(shù)據(jù)聪黎、是指反映(事物)類別的數(shù)據(jù)蔗喂,是離散數(shù)據(jù)忘渔,其數(shù)值個數(shù)(分類屬性)有限(但可能很多)且值之間無序。
比如缰儿,按性別分為男畦粮、女兩類。在一個回歸模型中乖阵,這些分類值可以用虛變量來表示宣赔,變量通常取諸如1或0這樣的值,來表示肯定類型或否定類型瞪浸。

虛擬變量陷阱
虛擬變量是指兩個以上(包括兩個)變量之間高度相關(guān)的情形儒将。簡而言之,就是存在一個能夠被其他變量預測出的變量默终。我們舉一個存在重復類別(變量)的直觀例子:假使我們舍棄男性類別椅棺,那么,該類別也可以通過女性類別來定義(女性值為0時齐蔽,表示男性、為1市表示女性)床估,反之亦然含滴。
解決虛擬變量陷阱的方法是,類別變量減去一:假如有m個類別丐巫,那么在模型構(gòu)建時取m-1個虛擬變量谈况,減去的那個變量可以看作是參照值。

注意
過多的變量可能會降低模型的精確度递胧,尤其是如果存在一些對結(jié)果無關(guān)的變量碑韵,或者存在對其他變量造成很大影響的變量時。這里介紹一些選擇合適變量的方法:
1缎脾、向前選擇法
2祝闻、向后選擇法(也稱 向后剔除法/向后消元法)
3、向前向后法:即結(jié)合了上面說的向前法和向后法遗菠,先用向前法篩選一遍联喘,再用向后法篩選一遍华蜒,直到最后無論怎么篩選模型變量都不再發(fā)生變化,就算是結(jié)束了

第一步:數(shù)據(jù)預處理
1.導入相關(guān)庫 Pandas豁遭、Numpy叭喜、Sklearn 、Matplotlib
2.導入csv數(shù)據(jù)集
3.檢查缺失數(shù)據(jù)
4.劃分數(shù)據(jù)集
5.有必要的話蓖谢,編輯虛擬變量并注意避免虛擬變量陷阱
6.特征縮放用簡單線性回歸模型的相關(guān)庫實現(xiàn)

數(shù)據(jù)預處理通過前兩天的學習已經(jīng)熟悉了需要哪些步驟捂蕴,就不單獨一列一列分析了

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression

dataset = pd.read_csv('/Users/xiehao/Desktop/100-Days-Of-ML-Code-master/datasets/50_Startups.csv')

"""
數(shù)據(jù)表格

R&D Spend   Administration  Marketing Spend State   Profit
165349.2    136897.8    471784.1    New York    192261.83
162597.7    151377.59   443898.53   California  191792.06
153441.51   101145.55   407934.54   Florida     191050.39
144372.41   118671.85   383199.62   New York    182901.99
142107.34   91391.77    366168.42   Florida     166187.94
131876.9    99814.71    362861.36   New York    156991.12
134615.46   147198.87   127716.82   California  156122.51
130298.13   145530.06   323876.68   Florida     155752.6
120542.52   148718.95   311613.29   New York    152211.77
123334.88   108679.17   304981.62   California  149759.96
101913.08   110594.11   229160.95   Florida     146121.95
100671.96   91790.61    249744.55   California  144259.4
93863.75    127320.38   249839.44   Florida     141585.52
91992.39    135495.07   252664.93   California  134307.35
119943.24   156547.42   256512.92   Florida     132602.65
114523.61   122616.84   261776.23   New York    129917.04
78013.11    121597.55   264346.06   California  126992.93
94657.16    145077.58   282574.31   New York    125370.37
91749.16    114175.79   294919.57   Florida     124266.9
86419.7     153514.11   0           New York    122776.86
76253.86    113867.3    298664.47   California  118474.03
78389.47    153773.43   299737.29   New York    111313.02
73994.56    122782.75   303319.26   Florida     110352.25
67532.53    105751.03   304768.73   Florida     108733.99
77044.01    99281.34    140574.81   New York    108552.04
64664.71    139553.16   137962.62   California  107404.34
75328.87    144135.98   134050.07   Florida     105733.54
72107.6     127864.55   353183.81   New York    105008.31
66051.52    182645.56   118148.2    Florida     103282.38
65605.48    153032.06   107138.38   New York    101004.64
61994.48    115641.28   91131.24    Florida     99937.59
61136.38    152701.92   88218.23    New York    97483.56
63408.86    129219.61   46085.25    California  97427.84
55493.95    103057.49   214634.81   Florida     96778.92
46426.07    157693.92   210797.67   California  96712.8
46014.02    85047.44    205517.64   New York    96479.51
28663.76    127056.21   201126.82   Florida     90708.19
44069.95    51283.14    197029.42   California  89949.14
20229.59    65947.93    185265.1    New York    81229.06
38558.51    82982.09    174999.3    California  81005.76
28754.33    118546.05   172795.67   California  78239.91
27892.92    84710.77    164470.71   Florida     77798.83
23640.93    96189.63    148001.11   California  71498.49
15505.73    127382.3    35534.17    New York    69758.98
22177.74    154806.14   28334.72    California  65200.33
1000.23     124153.04   1903.93     New York    64926.08
1315.46     115816.21   297114.46   Florida     49490.75
0           135426.92   0           California  42559.73
542.05      51743.15    0           New York    35673.41
0           116983.8    45173.06    California  14681.4

"""

X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 4].values


labelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])
onehotencoder = OneHotEncoder(categorical_features=[3])
X = onehotencoder.fit_transform(X).toarray()

X = X[:, 1:]

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

第二步:在訓練集上訓練模型
這一步和簡單線性回歸模型處理方式完全一樣。
用sklearn.linear_model庫的LinearRegression類闪幽,在數(shù)據(jù)集上訓練模型啥辨。首先,創(chuàng)建一個LinearRegression的對象regressor,接著用LinearRegression類的fit()方法沟使,用對象regressor在數(shù)據(jù)集上進行訓練委可。

regressor = LinearRegression()
regressor.fit(X_train, Y_train)

第三步:預測結(jié)果
在測試集上進行預測,并觀察結(jié)果腊嗡。我們將把輸出結(jié)果保存在向量Y_pred中着倾。在上一步regressor對象使用predict()方法來預測結(jié)果

y_pred = regressor.predict(X_test)
>>print(y_pred)
 [ 103015.20159797  132582.27760815  132447.73845175   71976.09851258
 178537.48221054  116161.24230165   67851.69209676   98791.73374688
 113969.43533012  167921.0656955 ]

感謝原作者 Avik-Jain 以及 zhyongquan的漢化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市燕少,隨后出現(xiàn)的幾起案子卡者,更是在濱河造成了極大的恐慌,老刑警劉巖客们,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崇决,死亡現(xiàn)場離奇詭異,居然都是意外死亡底挫,警方通過查閱死者的電腦和手機恒傻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來建邓,“玉大人盈厘,你說我怎么就攤上這事」俦撸” “怎么了沸手?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長注簿。 經(jīng)常有香客問我契吉,道長,這世上最難降的妖魔是什么诡渴? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任捐晶,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘租悄。我一直安慰自己谨究,他們只是感情好,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布泣棋。 她就那樣靜靜地躺著胶哲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪潭辈。 梳的紋絲不亂的頭發(fā)上鸯屿,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音把敢,去河邊找鬼寄摆。 笑死,一個胖子當著我的面吹牛修赞,可吹牛的內(nèi)容都是我干的婶恼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼柏副,長吁一口氣:“原來是場噩夢啊……” “哼勾邦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起割择,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤眷篇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荔泳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕉饼,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年玛歌,在試婚紗的時候發(fā)現(xiàn)自己被綠了昧港。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡支子,死狀恐怖慨飘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情译荞,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布休弃,位于F島的核電站吞歼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏塔猾。R本人自食惡果不足惜篙骡,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糯俗,春花似錦尿褪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淘正,卻和暖如春摆马,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸿吆。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工囤采, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惩淳。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓蕉毯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親思犁。 傳聞我的和親對象是個殘疾皇子代虾,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • https://developers.google.com/machine-learning/crash-cour...
    iOSDevLog閱讀 2,666評論 1 11
  • 本系列主要根據(jù)吳恩達老師的課程褐着、李航老師的統(tǒng)計學習方法以及自己平時的學習資料整理!在本文章中托呕,有些地方寫的十分簡略...
    文哥的學習日記閱讀 9,363評論 2 110
  • –記憶沙漏 第二天一早含蓉,星啟收拾好妹妹的東西,以后 她也是他唯一的依靠了 姑父的車子停在了外頭项郊,抬頭看天馅扣,大概就是...
    哦豁哪閱讀 182評論 0 0
  • 具體chromeDriver與Chrome對應版本號請查看這篇文件文章 @霧霾-2016-12-20 12:09:46
    古佛青燈度流年閱讀 15,441評論 0 1
  • 格斗式要求雙腳始終保持前后左右都有距離,為什么着降? 在公交上很多爺爺奶奶摔跤了差油,摔得很厲害,不經(jīng)意間任洞,開始觀察他們的...
    亮子子閱讀 258評論 1 5