最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

線性回歸:機器學(xué)習(xí)基礎(chǔ)技術(shù)

2023-04-05 09:05 作者:林木青同學(xué)  | 我要投稿

在前面幾期,我介紹了幾個常見的機器學(xué)習(xí)的方法,但是我深知自己不是這方面的專家,需要不斷地進行學(xué)習(xí)!機器學(xué)習(xí)領(lǐng)域浩瀚無邊,我們將面臨的第一個問題就是令人眼花繚亂的學(xué)習(xí)算法,到底要用哪一個?現(xiàn)在已經(jīng)有幾千種機器學(xué)習(xí)算法,每年都會涌現(xiàn)幾百種新的算法!如果要想學(xué)會所有的算法,那真的是天方夜譚,分享一句話:

諸事皆殫精竭慮,終將一事無成。

因此,凡事從基礎(chǔ)做起,從基礎(chǔ)學(xué)機器學(xué)習(xí),日積月累,終將收獲滿滿!


01 單變量回歸

線性回歸是一項簡單又特別有效的技術(shù),線性回歸使用最小二乘法預(yù)測定量的結(jié)果,真的沒有比久經(jīng)考驗的線性回歸更簡單的模型了。因此,在機器學(xué)習(xí)的道路上,線性回歸是一個非常好的起點。

我們先從一個簡單的對定量型響應(yīng)變量的預(yù)測開始。令這個響應(yīng)變量為Y,還有一個預(yù)測變量x,假設(shè)Y與x具有線性關(guān)系,那么這個預(yù)測模型可以表示為Y =?B0?+?B1x +?e。我們規(guī)定, Y的預(yù)測值是一個函數(shù),等于B0(截距)加上B1(斜率)乘以x再加上一個誤差項e。最小二乘法選擇模型參數(shù),使預(yù)測值y和實際值Y的殘差平方和( RSS)最小。

數(shù)據(jù)來源:alr4包中的預(yù)測懷俄明州蛇河流域的水量的數(shù)據(jù)。

進行數(shù)據(jù)探索,將X和Y換成有意義的變量名

這張圖很有意思,它的數(shù)據(jù)是線性的,因為被最前端和最后端的兩個疑似離群點影響,有一點輕微的曲線形狀。

R使用lm()函數(shù)進行線性回歸, lm()可以建立一個標準形式的回歸模型fit = lm(Y~X)。建立模型之后,可以對擬合模型使用各種函數(shù),以檢驗自己的假設(shè)。代碼如下:

通過summary()函數(shù),我們可以查看模型包含的一些項目,比如模型具體參數(shù)、關(guān)于殘差的描述性統(tǒng)計量、系數(shù)、模型顯著性代碼、模型誤差和擬合程度的摘要。因為p值是高度顯著的,所以我們可以拒絕原假設(shè)。

為散點圖加上一條由模型產(chǎn)生的最佳擬合直線。代碼如下:

看起來擬合得不錯!但是線性回歸必須通過假設(shè)檢驗:

  1. 線性:預(yù)測變量與響應(yīng)變量之間的關(guān)系是線性的。如果線性關(guān)系不能清晰呈現(xiàn),可以對變量X或Y進行數(shù)據(jù)轉(zhuǎn)換(對數(shù)轉(zhuǎn)換、多項式轉(zhuǎn)換、指數(shù)轉(zhuǎn)換等)以解決問題。

  2. 誤差不相關(guān)性:如果誤差是相關(guān)的,那么你就有可能建立一個非常不規(guī)范的模型。

  3. 同方差性:誤差是正態(tài)分布的,并具有相同的方差。這意味著對于不同的輸入值,誤差的方差是個固定值。如果違背了這個假設(shè),參數(shù)估計就有可能產(chǎn)生偏差,導(dǎo)致對顯著性的統(tǒng)計檢驗結(jié)果過高或者過低,從而得到錯誤的結(jié)論。這種情況就稱為異方差性。

  4. 非共線性:兩個預(yù)測變量之間不存在線性關(guān)系,也就是說,特征之間不應(yīng)該存在相關(guān)性。同樣地,共線性也會導(dǎo)致估計偏差。

  5. 存在異常值:異常值會嚴重影響參數(shù)估計。理想情況下,必須在使用線性回歸擬合模型之前就除去異常值。

plot()函數(shù)結(jié)合線性模型,可以自動生成4張統(tǒng)計圖,幫助我們進行假設(shè)檢驗。

怎么看這四張圖呢?首先,左邊的兩張圖供我們檢查誤差的同方差性和非線性。誤差的異方差性通常會表現(xiàn)為U形曲線或反U形曲線,也可能會緊密聚集在圖的左側(cè),隨著擬合值的增加逐漸變寬(漏斗形)。因此,該模型明顯沒有違背同方差性假設(shè)。

右上角的正態(tài)Q-Q圖可以幫助我們確定殘差是否服從正態(tài)分布。分位數(shù)-分位數(shù)圖表示一個變量的分位數(shù)對應(yīng)于另一個變量的分位數(shù)畫出的圖,從圖中可以看出有離群點(第7、 9、 10個觀測),這可能違反假設(shè)。

右下角的殘差杠桿圖可以告訴我們哪個觀測值(如果有)會對模型造成過度影響,換句話說,是否存在我們應(yīng)該關(guān)注的異常值。

對于正態(tài)Q-Q圖,car 包中的qqPlot()函數(shù)可以自動生成Q-Q圖并提供置信區(qū)間。

02 多元線性回歸

很多情況下,變量都不是一對一關(guān)系,而是存在多個變量。這次用的是alr4包里面的water數(shù)據(jù)集。

所有特征都是數(shù)值型的,那么就應(yīng)該檢查相關(guān)性方面的統(tǒng)計量,并繪出散點圖矩陣。有很多方式可以做出相關(guān)性矩陣圖。有些人喜歡做熱點圖,但是我強烈推薦使用corrplot包做圖,它可以用很多方式表示相關(guān)系數(shù)之間的差異,包括橢圓、圓、正方形、數(shù)字、陰影、顏色和餅圖。

相關(guān)性矩陣圖很漂亮!

這很明顯看到,不同的變量之間高度相關(guān),這意味著我們會遇到多重共線性的問題。

模型構(gòu)建與模型檢驗

一個很重要的問題是,哪些變量是對模型影響重大的。我推薦用的是leaps包的最優(yōu)子集回歸逐步回歸方法。

前向逐步選擇從一個零特征模型開始,然后每次添加一個特征,直到所有特征添加完畢。在這個過程中,被添加的選定特征建立的模型具有最小的RSS。所以理論上,第一個選定的特征應(yīng)該能最好地解釋響應(yīng)變量,依此類推。

后向逐步回歸從一個包含所有特征的模型開始,每次刪除一個起最小作用的特征?,F(xiàn)在也有一種混合方法,這種算法先通過前向逐步回歸添加特征,然后檢查是否有特征不再對提高模型擬合度起作用,如果有則刪除。每次建模之后,分析者都可以檢查模型輸出,并使用各種統(tǒng)計量選擇能提供最佳擬合的特征。

對于特征選擇,最優(yōu)子集回歸是逐步回歸的一個可接受的替代方案。在最優(yōu)子集回歸中,算法使用所有可能的特征組合來擬合模型,所以,如果有3個特征,將生成7個模型。然后和逐步回歸一樣,分析者需要應(yīng)用自己的判斷和統(tǒng)計分析來選擇最優(yōu)模型,模型選擇就是后面工作的關(guān)鍵。

使用lm()函數(shù)構(gòu)建所有特征的線性模型。

模型形式為fit = lm (y~x1?+ x2?+x3?+ … + xn)。

一個簡單的技巧是,如果你想包括所有特征,只要在波形符號后面加一個句號,而不用把它們?nèi)虺鰜怼?/p>

我們可以看到p值是高度顯著的。還可以看到, OPRC和OPSLAKE這兩個參數(shù)具有顯著的p值。有趣的是, OPBPC并不顯著,盡管它與響應(yīng)變量高度相關(guān)。

建立初始模型之后,使用最優(yōu)子集法。我們使用leaps包中的regsubsets()函數(shù)建立一個sub.fit對象。?

我們可以看到,有6個特征的模型具有最小的RSS。需要注意的是,增加特征必然會減少RSS!而且必然會增加R方。

有4種用于特征選擇的統(tǒng)計方法:赤池信息量準則、 馬洛斯的Cp、 貝葉斯信息量準則和修正R方。?

在線性模型中, AIC和Cp成正比,所以我們只需關(guān)注Cp 。BIC與Cp相比,更傾向于選擇變量較少的模型,所以要對二者進行比較。使用下面的代碼比較Cp和BIC:

在左側(cè)的圖中,可以看出有3個特征的模型具有最小的Cp值。

怎么看右側(cè)的圖呢?該圖顯示了能給出最小Cp的特征組合。先在Y軸的最高點找到最小的Cp值,此處是1.2;然后向右在X軸上找到與之對應(yīng)的色塊。通過這張圖,我們可以看到這個具有最小Cp值的模型中的3個特征是APSLAKE、 OPRC和OPSLAKE。通過which.min()和which.max()函數(shù),我們可以進行Cp與BIC和修正R方的比較。?

可以看出,在本例中, BIC、修正R方和Cp選擇的最優(yōu)模型是一致的?,F(xiàn)在,與單變量線性回歸一樣,我們需要檢查模型并進行假設(shè)檢驗。


在這個三特征模型中, F統(tǒng)計量和所有t檢驗都具有顯著的p值。通過了第一個檢驗,即可生成診斷圖看看:

從上面的4張圖可以看出,殘差具有固定的方差并且服從正態(tài)分布?!杠桿圖和QQ圖也什么異常。

我們在作相關(guān)性分析時看出來可能存在共線性的問題。為了研究共線性的問題,我們要引入方差膨脹因子(VIF)這個統(tǒng)計量。VIF能取得的最小值是1,表示根本不存在共線性?,F(xiàn)在還沒有一個確定的準則決定共線性的嚴重程度,一般認為, VIF值超過5(有些人認為是10)就說明存在嚴重的共線性 !

car包中的vif()函數(shù)完全可以計算出VIF值:

基于相關(guān)性分析,我們發(fā)現(xiàn)OPRC和OPSLAKE存在潛在的共線性問題( VIF值大于5),這也是符合預(yù)期的。

?我們看一下這兩個變量的相關(guān)性:

解決共線性的簡單方式就是,在不影響預(yù)測能力的前提下去掉這個變量??匆幌伦顑?yōu)子集法中生成的修正R方的值就會發(fā)現(xiàn), APSLAKE和OPSLAKE組成的兩變量模型的值為0.90,加入OPRC之后僅有一個微不足道的提升,到了0.92。?

看一下這個兩變量模型及其假設(shè)檢驗結(jié)果?:

診斷圖中也沒發(fā)現(xiàn)什么問題,共線性問題應(yīng)該得到了解決。再使用vif()函數(shù)檢查一下:


共線性問題解決了!所有的事情都搞定了,看上去,最好的預(yù)測模型應(yīng)該由APSLAKE和OPSLAKE兩個特征組成。這個模型可以解釋河川徑流量的90%的方差?。

在R基礎(chǔ)包中,使用模型擬合值與響應(yīng)變量的值可以生成預(yù)測值相對于實際值的散點圖。

R基礎(chǔ)包畫的圖看起來不是那么好看,在R中我強烈推薦使用ggplot2進行繪圖。


效果圖如下:

03 總結(jié)

本期中我主要介紹了線性回歸方法,它預(yù)測定量結(jié)果,雖然簡單,但極其有效。通過寥寥幾行代碼,你就可以做出非常強大的有洞察力的預(yù)測,以支持決策。后續(xù)分享中會涉及更高級的技術(shù),但其中很多技術(shù)只是本期所學(xué)內(nèi)容的擴展。?

完整代碼如下:

有其它問題可在后臺私信我哦~

歡迎交流,點贊和轉(zhuǎn)發(fā)!

線性回歸:機器學(xué)習(xí)基礎(chǔ)技術(shù)的評論 (共 條)

分享到微博請遵守國家法律
双桥区| 余干县| 保康县| 永宁县| 句容市| 台南市| 康平县| 东乡族自治县| 商丘市| 广平县| 通江县| 德清县| 老河口市| 乐东| 宜宾县| 仙游县| 唐海县| 湄潭县| 隆子县| 镇坪县| 潼关县| 察隅县| 普安县| 马尔康县| 汶川县| 札达县| 琼海市| 越西县| 宁明县| 光山县| 南陵县| 雷波县| 比如县| 屏东市| 克拉玛依市| 汉川市| 汾西县| 杭锦旗| 故城县| 凤翔县| 永定县|