04.26 迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

在本篇文章中,主要是介紹利用波士頓房價數據來掌握迴歸預測分析的一些方法。通過本篇文章你可以學習到:

1、可視化數據集的重要特徵

2、估計迴歸模型的係數

3、使用RANSAC擬合高魯棒性迴歸模型

4、如何來評價迴歸模型

5、多項式迴歸

6、決策樹迴歸

7、隨機森林迴歸

數據集下載地址:https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data

數據特徵說明:https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.names

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

掌握數據的基本情況

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

一、數據特徵的可視化

探索性數據分析(Exploratory Data Analysis,EDA):是機器學習模型訓練之前的一個重要步驟,通過藉助python第三方庫pandas、seaborn來繪圖,可以幫助我們分析和發現數據中的異常情況、數據的分佈情況,以及特徵將的相互關係。

由於屏幕大小關係,我們選擇四個自變量和因變量進行分析,indus(房屋所在鎮無零售業務區域所佔比例),nox(一氧化氮濃度,每千萬分之一),rm(每處寓所的平均房間數),lstat(弱勢群體人口所佔比例),medv(房屋平均價格,單位1000美元)。

1、繪製散點圖

#選擇需要繪製散點圖的列名
cols = ["lstat","indus","nox","rm","medv"]
#通過seaborn繪製散點圖
sns.pairplot(data[cols],size=1.5)
plt.show()

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

通過繪製特徵的散點圖,我們可以發現變量之間的關係。對角線是變量的直方圖,可以看出特徵的分佈情況。通過medv(房價)的直方圖可以發現,房價服從正態分佈,但是在大於40的部分包含了幾個異常值。通過rm(房間數)和medv(房價)的散點圖,第四行第五列,呈線性分佈。而其他的三個變量與mdv(房價)呈一個非線性分佈。

注意:訓練一個線性迴歸模型並不需要自變量或者因變量呈正態分佈,正態假設僅適用於某些統計檢驗和假設檢驗。

2、係數矩陣

除了通過變量之間的散點圖來尋找變量之間的關係,還可以通過變量之間的相關係數來發現變量的關係。相關係數矩陣,常用的有皮爾遜相關係數(Pearson product-moment correlation coefficient,Pearson's r)的方陣,通過它可以來衡量兩個特徵之間的線性關係。皮爾遜相關係數的取值在[-1,1]範圍內,如果r=1,表示兩個變量呈正相關,r=0表示兩個變量沒有關係,r=-1表示兩個變量呈負相關。其實,相關係數矩陣就是標準化的協方差矩陣。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

通過相關係數矩陣可以發現,lstat與medv的相關性最大(-0.74),其次就是rm與medv的相關性最大。通過之前的散點圖,也可以說明這一點。

二、常用的線性迴歸算法

分析rm與medv的線性關係

1、線性迴歸

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

通過rm與medv數據之間的關係,來擬合一條直線。通過rm與medv的點集可以發現,在周圍存在著很多的異常值,異常值對於線性迴歸模型具有很嚴重的影響。下面通過RANSAC算法,清除異常值。

2、RANSAC擬合高魯棒性迴歸

RANSAC(Random Sample Consenus),它是根據一組包含異常數據的樣本數據集,計算出數據的數學模型參數,得到有效樣本數據的算法。使用數據的一個子集(內點,Ran)來進行迴歸模型的擬合。

RANSAC算法的工作流程如下:

1、從數據集中隨機抽取樣本構建內點集合擬合模型。

2、使用剩餘的數據對上一步得到的模型進行測試,並將落在預定公差範圍內的樣本點增加到內點集合中。

3、使用全部的內點集合數據再次進行模型的擬合。

4、使用內點集合來估計模型的誤差。

5、如果模型性能達到了用戶設定的特定閾值或者迭代的次數達到了預定的次數,則算法終止,否則重複從第一步開始。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

三、線性迴歸模型性能的評估

1、殘差圖

通過繪製殘差圖能夠直觀的發現真實值與預測值之間的差異或垂直距離,通過真實值與預測值之間的差異來對迴歸模型進行評估。殘差圖可以作為圖形分析方法,可以對迴歸模型進行評估、獲取模型的異常值,同時還可以檢查模型是否是線性的,以及誤差是否隨機分佈。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

最好的模型預測結果的殘差為0,在實際應用中,這種情況是不可能發生的。但是,對於一個好的模型,我們期望誤差是隨機分佈的,同時殘差也是在y=0水平線附近波動。通過殘差圖也可以發現異常值,偏離y=0比較遠的點。

2、均方誤差(MSE)

均方誤差(Mean Squared Error,MSE):真實值與預測值差的平方和的平均值,計算公式如下

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

除了均方誤差之外,還可以通過絕對值誤差來衡量模型的性能。

3、決定係數R^2

在某些情況下決定係數(coefficient of determination)R^2非常重要,可以將其看成一個MSE標準化版本,R^2是模型捕獲響應方差的分數。對於訓練集來說,R^2的取值範圍為[0,1],對於測試集來說,R^2取值可能為負。如果R^2越接近與1表明其模型的性能越好。R^2計算公式如下:

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

四、非線性迴歸

1、多項式迴歸

對於不滿足線性迴歸,可以通過加入多項式來使用多項式迴歸。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

前面通過散點圖繪製了四個特徵與房價之前關係,發現lstat與房價之間呈現一個非線性關係,我們分別使用線性迴歸於多項式迴歸來擬合lstat與房價之間的線性關係,對比R^2的變化。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

2、特徵轉換

對於這種非線性迴歸除了使用多項式迴歸還可以使用log迴歸。對於lstat與medv之間的關係,可以先將lstat進行log對數轉換,medv進行平方根轉換之後再使用線性迴歸。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)

通過上圖可以發現,將特徵轉換之後由原來的非線性關係變成了線性關係,而且R^2比多項迴歸的結果還要好。

3、隨機森林

隨機森林是一種集成算法,它是通過組合多顆決策樹。能夠降低模型的方差,與單顆決策樹相比,隨機森林通常具有更好的泛化性能。它對數據集中的異常值不敏感,不需要過多的參數調優。

迴歸預測(RANSAC、殘差圖、多項式迴歸、隨機森林)


分享到:


相關文章: