【萬字長文】整理一份全套的機器學習資料!
本文的目錄先列在這裡啦:
1、引言
2、線性迴歸
3、梯度下降法
3.1 梯度下降法分類
3.2 梯度下降法改進
4、邏輯迴歸
5、過擬合和正則化
5.1 過擬合
5.2 正則化
6、方差vs偏差
6.1 偏差(Bias)
6.2 方差(Variance)
7、支援向量機SVM
7.1 最大間隔分類器
7.2 超平面求解
7.3 核函式Kernel
7.4 Outliers
7.5 SVM的損失函式
7.6 LR和SVM的區別
8、樸素貝葉斯
8.1 貝葉斯定理
8.2 樸素貝葉斯分類
9、決策樹方法
9.1 特徵選擇
9.2 決策樹的生成
9.3決策樹剪枝
10、整合學習方法
10.1 Bagging
10.2 Boosting
10.3 Bagging與Boosting的異同
10.4 Stacking
11、總結一下機器學習中的損失函式
11.1 0-1損失函式
11.2 絕對值損失函式
11.3 log對數損失函式
11.4 平方損失函式
11.5 指數損失函式
11.6 Hinge損失函式
1、引言
機器學習是什麼?
Arthur Samuel:在進行特定程式設計的情況下,給予計算機學習能力的領域。
Tom Mitchell:一個程式被認為能從經驗E中學習,解決任務T,達到效能度量值P,當且僅當,有了經驗E後,經過P評判,程式在處理T時的效能有所提升。
監督學習與無監督學習
根據訓練資料是否有標記資訊,機器學習任務大致分為兩大類:監督學習和非監督學習,分類和迴歸是監督學習的代表,而聚類是非監督學習的代表。
輸入空間、特徵空間、輸出空間、假設空間
輸入空間:在監督學習中,將輸入所有可能取值的集合稱為輸入空間。
特徵空間:每個具體的輸入是一個例項,通常由特徵向量表示,所有特徵向量存在的空間成為特徵空間。有時輸入空間和特徵空間為相同的空間,有時為不同的空間,需要將例項從輸入空間對映到輸出空間。
輸出空間:在監督學習中,將輸出所有可能取值的集合稱為輸出空間。
假設空間:監督學習的目的在於學習一個由輸入到輸出的對映,這一對映由模型來表示。由輸入空間到輸出空間的對映的集合,稱為假設空間。舉個簡單的例子,在一元線性迴歸中,假設空間即所有的直線y=ax+b組成的集合,我們的目標就是找到一條y=a'x+b',使得損失最小。
生成模型和判別模型
生成模型:生成模型由資料學習聯合概率分佈P(X,Y),按後求出條件概率分佈P(Y|X),作為預測的模型。之所以被稱為生成方法,是因為模型表示了給定輸入X產生輸出Y的關係。典型的模型有樸素貝葉斯方法和隱馬爾可夫模型的。
判別模型:判別模型由資料直接學習決策函式f(X),或者條件概率分佈P(Y|X)。判別方法關心的是對給定的輸入X,應該預測什麼樣的輸出Y。典型的判別模型包括k近鄰演算法,感知機,決策樹,邏輯迴歸,支援向量機等。
2、線性迴歸
模型表示
線性迴歸是最簡單的機器學習模型,其假設輸入和輸出之間滿足線性關係,假設我們想要通過房屋尺寸來預測房價,通過將收集到的資料繪製在二維座標系中,我們總中擬合得到圖中的直線:
以二元線性迴歸為例,其表示式如下:
對具有n個變數的多元線性迴歸問題,其一般表示式為:
損失函式
線性迴歸的損失函式一般是平方損失函式(上標i代表第i個數據,下表i代表第i維特徵):
有時候我們可能把這個式子想的比較想當然,其實我們可以從極大似然的角度推匯出平方損失函式,這時我們會假設損失服從正態分佈,具體參考文章:
https://www.jianshu.com/p/4d562f2c06b8
梯度下降
梯度下降(Gradient Descent)是一個用來求函式最小值的演算法,後面會有一張專門講解梯度下降法及其改進演算法,這裡只是介紹一個基本的思想。
梯度下降背後的思想是:開始時我們隨機選擇一個引數的組合,計算代價函式,然後我們尋找下一個能讓代價函式值下降最多的引數組合。我們持續這麼做直到找到一個區域性最小值(local minimum),因為我們並沒有嘗試完所有的引數組合,所以不能確定我們得到的區域性最小值是否便是全域性最小值(global minimum),選擇不同的初始引數組合,可能會找到不同的區域性最小值。
具體的做法就是:每一次都同時讓所有的引數減去學習速率乘以損失函式的導數。
其中α是學習率(learning rate),它決定了我們沿著能讓代價函式下降程度最大的方向向下邁出的步子有多大。
除學習率外,使用梯度下降法時需要對特徵進行標準化處理,以二元線性迴歸為例,如果兩維的數值範圍相差特別大,梯度下降演算法需要非常多次的迭代才能收斂,解決的方法是嘗試將所有特徵的尺度都儘量縮放到-1到1之間:
3、梯度下降法
再進一步介紹演算法之前,我們先來介紹一下梯度下降法的分類及對其的改進。
3.1 梯度下降法分類
梯度下降法可以分為下面三種:
批量梯度下降法(Batch Gradient Descent):批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新引數時使用所有的樣本來進行更新。
隨機梯度下降法(Stochastic Gradient Descent):求梯度時沒有用所有的m個樣本的資料,而是僅僅選取一個樣本j來求梯度。
小批量梯度下降法(Mini-batch Gradient Descent):小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於m個樣本,我們採用x個樣子來迭代。
三者到達極小值的路徑大致可以表示為下圖:
其中,藍色為批量梯度下降法,綠色為小批量梯度下降法,紫色為隨機梯度下降法。
3.2 梯度下降法改進
指數加權平均數
在講解一些常見的梯度下降改進演算法之前,我們先來看一下指數加權平均數(Exponentially weighted averages):指數加權平均數是對趨勢的一種刻畫,計算公式如下:
在上式中,vt是t時刻的指數加權平均值,v0 = 0,θt是第t時刻的實際值。β是一個引數。簡單的理解,β代表了vt刻畫的是多少天的平均值,如果β太小,那麼vt越接近於θt,如果β很大,那麼vt就能代表一個更長時間的平均值。
大體上,vt大概是1/(1-β)天的平均值,即當β=0.1時,我們可以認為vt代表了近10天的平均值。β=0.02時,我們可以認為vt代表了近50天的平均值,如下圖所示,紅色表示的是β=0.1時vt的變化,綠色表示的是β=0.02時vt的變化:
在指數加權平均的過程中,還有一個很重要的概念,叫做偏差修正(Bias correction),可以看到,如果v0=0,那麼v1 = β*θ1,特別地,如果β=0.1,那麼
v1 = 0.1 * θ1,這樣導致v1會特別小,需要進行一定程度的修正, 具體的修正方法是對vt除以( 1-β^t),當t特別小的時候,可以起到較為明顯的修正效果,但是當t變大時,分母接近於1,基本沒有進行修正。
在機器學習中,在計算指數加權平均數的大部分時候,大家不在乎執行偏差修正,因為 大部分人寧願熬過初始時期,拿到具有偏差的估測,然後繼續計算下去。如果你關心初始時 期的偏差,在剛開始計算指數加權移動平均數的時
動量梯度下降法(Momentum)
動量梯度下降法基本的想法就是計算梯度的指數加權平均數,並利用該梯度 更新你的權重。假設我們使用梯度下降法更新引數的路徑如下圖中藍色的線所示:
上圖中的路徑上下波動減慢了梯度下降法的速度,如果我們用更大的學習率,可能導致這種波動進一步加大,變成圖中的紫色的線。因此,你希望在縱軸上學習慢一點,消除這種上下的擺動,而在橫軸上,你希望快速從左向右移動,移動到最小值處。
我們之前介紹的指數加權平均數,可以反映近一段時間的趨勢,在縱軸上的上下波動,使得平均值接近於0,而在橫軸方向的平均值仍然較大。利用這種思想,Momentum的計算過程如下:
RMSprop(root mean square prop)
還是用上面的例子,我們假設縱軸代表引數b,橫軸代表引數W:
所以,你想減緩 方向的學習,即縱軸方向,同時加快,至少不是減緩橫軸方向的學習, RMSprop 演算法可以實現這一點,將趨勢變成下面的綠色的線:
我們這裡仍然運用指數加權平均數,但並不是dW的平均數,而是(dW)^2的平均數,即:
在引數更新時:
由於db較大,dw較小,因此SdW較小,Sdb較大,所以可以減小縱軸上的擺動,加速橫軸上的學習速度。
Adam(Adaptive Moment Estimation)
Adam 優化演算法基本上就是將 Momentum 和 RMSprop 結合在一起,它使用的是經過偏差修正後的指數加權平均數:
最終的引數更新變為:
Adam 演算法結合了 Momentum 和 RMSprop 梯度下降法,並且是一種極其常用的學習演算法,被證明能有效適用於不同神經網路,適用於廣泛的結構。
4、邏輯迴歸
基本原理
邏輯迴歸被應用於分類問題,通過sigmoid函式對線性迴歸的預測值進行轉換,使其在[0,1]的範圍:
Line"/>
其中,g被稱為sigmoid函式,其形式如下:
損失函式
邏輯迴歸使用的損失函式並非平方損失函式,而是如下的形式:
主要的原因是,平方損失函式對於邏輯迴歸來說是非凸的,使用梯度下降法可能收斂到區域性極小值,而上面的損失函式是凸函式,可以得到全域性最小值:
過程推導
邏輯迴歸的推導是面試中經常會問到的問題,通過梯度下降法進行推導時,我們用到的主要性質時sigmoid函式的導數性質:g'(x) = g(x)(1-g(x)),一定要牢記於心。下圖是推導過程:
可以記一下結論,到時候用於檢驗自己推導的對不對。對第j個引數求梯度,結果為:
邏輯迴歸為什麼會選擇sigmoid函式呢,總結有以下幾方面吧:
1、函式連續,單調遞增
2、求導方便
3、輸出範圍為(0,1),可以用作輸出層,結果可以表示概率
4、抑制兩頭,對中間細微變化敏感,對分類有利。
解決多分類問題
邏輯迴歸還可以用於多分類,我們常用的策略被稱為one vs all。
假設我們有三個類,如下圖所示:
採用one vs all策略時,有多少類別,我們就要訓練幾個分類器。每次選擇一個類別作為正例,其他所有類別的樣本作為負例,訓練一個分類器:
最後,在我們需要做預測時,我們將所有的分類器都執行一遍,然後對每一個輸入變數,都選擇最高可能性的輸出變數,即:
5、過擬合和正則化
5.1 過擬合
機器學習的目的是使學到的模型不僅對已知的資料而且對未知的資料都能有很好的預測能力。當損失函式給定時,模型在訓練集上的損失被稱為訓練誤差,在測試集上的損失被稱為測試誤差。
如果模型不能很好的適應訓練集,會造成欠擬合(underfit)。相反,如果模型過於強調擬合原始資料,會導致對未知資料擬合很差,這種情況被稱為過擬合(overfit)。
看下面的例子:
隨著模型的複雜度的提升,訓練誤差和測試誤差往往呈現下面的趨勢:
5.2 正則化
正則化的目的是對過大的引數進行一定的懲罰,降低其對模型的影響,使我們能夠得到一個較為簡單的模型。這符合奧卡姆剃刀的原理,即在所有可能選擇的模型中,能夠很好地解釋已知資料並且十分簡單的才是最好的模型。
我們常用的正則化有L1正則化和L2正則化。
L1正則化
L1正則化即在損失函式的基礎上增加引數的1範數:
我們常說,L1正則化具有引數選擇的作用,直觀從影象理解,如下:
當然,也可以通過數學推導得到結論,具體參考文章:https://www.jianshu.com/p/2f60e672d4f0
從貝葉斯角度看,當引數的先驗概率符合拉普拉斯分佈時,最大化後驗概率可以得到新增1範數的損失函式。
L2正則化
L2正則化即在損失函式的基礎上增加引數的2範數:
L2正則化具有權重衰減的功能,影象如下:
從貝葉斯角度看,當引數的先驗概率符合高斯分佈時,最大化後驗概率可以得到新增2範數的損失函式。
從貝葉斯角度看L1正則化和L2正則化,參考文章:https://www.jianshu.com/p/4d562f2c06b8
6、方差vs偏差
當你執行一個學習演算法時,如果這個演算法的表現不理想,那麼多半是出現兩種情況:要麼是偏差比較大,要麼是方差比較大。換句話說,出現的情況要麼是欠擬合,要麼是過擬合問題。那麼這兩種情況,哪個和偏差有關,哪個和方差有關,或者是不是和兩個都有關?
6.1 偏差(Bias)
偏差基本對應於欠擬合問題,其表現是模型在訓練集和驗證集上的誤差都比較大,隨著資料集的增加,模型在訓練集和驗證集上的誤差表現如下:
在面臨高偏差時,我們應該嘗試以下的方法:嘗試獲得更多的特徵,嘗試增加多項式特徵,嘗試減少正則化程度λ。
6.2 方差(Variance)
方差問題對應於過擬合問題,其表現是模型在訓練集上誤差比較小,而在驗證集上的誤差遠遠高於訓練集。另一個解釋方差問題的角度是,對於同一個形式的模型(比如都是四次迴歸),針對不同的訓練集,其擬合得到的引數相差很大。隨著資料集的增加,模型在訓練集和驗證集上的誤差表現如下:
在面臨高偏差時,我們應該採取下面的方法:獲得更多的訓練例項,嘗試減少特徵的數量,嘗試增加正則化程度λ
7、支援向量機SVM
關於SVM的知識,可以參照pluskid的部落格,寫的真心贊!
部落格連結:http://blog.pluskid.org/?page_id=683
7.1 最大間隔分類器
SVM的目標是找到一個最大間隔的分類器,使得兩類資料點到超平面的最小距離最大:
恰好在邊界上的點被稱為支撐向量Support Vector。
其目標函式為:
其中,約束條件在支撐向量處取得等號,非支撐向量取大於號。
7.2 超平面求解
利用拉格朗日乘子法,上面的目標函式和約束條件可以寫為一個式子:
如果我們令:
我們分析一下上式,在a>=0的情況下,對於支撐向量,後面括號中的一項為0,因此對應的a可以取得大於0的值,而對於非支撐向量,後面括號中的一項大於0,此時對應的a必須等於0。因此,在所有約束條件都滿足的情況下,我們可以得到θ(w)=1/2 * ||w||^2,因此原問題可以表示成:
根據KKT條件,我們可以將上面的式子轉換為對偶形式(關於KKT條件,參考部落格:http://blog.pluskid.org/?p=702):
因此,我們首先對w和b進行求導得到:
然後求解a,這裡用到的是SMO演算法,我們不再詳細介紹。
求解得到w和b之後,我們可以得到超平面方程為:
因此對於新點 x 的預測,只需要計算它與訓練資料點的內積即可。更進一步,實際上只要針對少量的“支援向量”而不是所有的訓練資料,因為我們前面介紹過,對於非支撐向量,其對應的a是等於0的。
7.3 核函式Kernel
前面介紹的是線性可分的情況,然而還有線性不可分以及非線性的情況。這裡我們先來介紹非線性的情況,我們會介紹到一種核函式的方法。
如圖中的資料,是一種典型的非線性情況,我們希望找到一個圓來區分兩類資料:
因此超平面是類似下面的形式:
因此,我們可以將低維空間中的資料對映到高維空間中去,進而得到一個最大間隔的超平面。一般的,如果我們用 ϕ(⋅)表示這個對映,則超平面變為:
但上面的方法會面臨維數爆炸的問題,如果二維空間做對映,選擇的新空間是原始空間的所有一階和二階的組合,得到了五個維度;如果原始空間是三維,那麼我們會得到 19 維的新空間這個數目是呈爆炸性增長的。所以就需要核函式方法出馬了。
使用核函式方法,可以在低維空間中快速計算兩個向量在對映過後的空間中的內積,例如在二維空間中使用多項式核函式,可以快速得到五維空間中對映結果的內積(形式相同):
使用核函式,我們現在的分類超平面變為:
常見的核函式有多項式核,高斯核,線性核:
7.4 Outliers
對於這種偏離正常位置很遠的資料點,我們稱之為outlier ,在我們原來的 SVM 模型裡,outlier 的存在有可能造成很大的影響:
用黑圈圈起來的那個藍點是一個outlier ,它偏離了自己原本所應該在的那個半空間,如果直接忽略掉它的話,原來的分隔超平面還是挺好的,但是由於這個 outlier 的出現,導致分隔超平面不得不被擠歪了,變成途中黑色虛線所示(這只是一個示意圖,並沒有嚴格計算精確座標),同時分類間隔也相應變小了。當然,更嚴重的情況是,如果這個 outlier 再往右上移動一些距離的話,我們將無法構造出能將資料分開的超平面來。
為了處理這種情況,SVM 允許資料點在一定程度上偏離一下超平面。例如上圖中,黑色實線所對應的距離,就是該 outlier 偏離的距離,如果把它移動回來,就剛好落在原來的超平面上,而不會使得超平面發生變形了。具體來說,原來的約束條件變為:
而目標函式變為:
其中 C 是一個引數,我們可以認為是對outlier的容忍程度,如果C越大,我們對outliers的容忍程度越小,反之越大。
完整的形式如下:
7.5 SVM的損失函式
SVM的損失函式被稱為合頁損失函式,如下圖:

當樣本被正確分類且函式間隔大於1時,合頁損失才是0,否則,就會產生一定的損失。
7.6 LR和SVM的區別
總結了幾點LR與SVM的區別,和大家分享:
1、LR可以輸出屬於每一類別的概率,SVM則不行
2、LR是基於概率最大化推導的,而SVM是基於最大化幾何間隔推導的
3、SVM的決策超平面只有少量的支撐向量決定,而LR所有的樣本都參與決策面的更新,所以SVM對異常資料並不敏感,LR更加敏感
4、SVM依賴資料表達的距離測度,所以需要先對資料進行標準化處理,但是LR不需要。
8、樸素貝葉斯
樸素貝葉斯是基於貝葉斯定理與特徵條件獨立假設的分類方法。
8.1 貝葉斯定理
貝葉斯定理是關於隨機事件A和B的條件概率的定理,形式如下:
8.2 樸素貝葉斯分類
樸素貝葉斯分類的基本思想是:給出待分類項,求解在此項出現的條件下其他各個類別的出現的概率,哪個概率較大就認為待分類項屬於哪個類別,用貝葉斯定理表示為(這裡的上標表示一維特徵):
分母對於所有的c都是相同的,因此可以省去,故有:
我們要做的就是統計對每一個類別來說,每一維特徵每個特徵出現的頻率。頻率有可能出現0的情況,我們需要進行*拉普拉斯平滑操作。
拉普拉斯平滑:就是對每類別下所有劃分的計數加1,這樣如果訓練樣本集數量充分大時,並不會對結果產生影響,並且解決了頻率為0的尷尬局面。
9、決策樹方法
決策樹(Decision Tree)是資料探勘中一種基本的分類和迴歸方法,它呈樹形結構,在分類問題中,表示基於特徵對例項進行分類的過程,可以認為是if−then規則的集合,也可認為是定義在特徵空間與類空間上的條件概率分佈。下圖是一個簡單的決策樹示例:
決策樹模型的主要優點是模型具有可讀性,分類速度快。在學習時,利用訓練資料,根據損失函式最小化原則建立決策樹模型;而在預測時,對新的資料,利用決策樹模型進行分類。主要的決策樹演算法有ID3演算法、C4.5演算法和CART演算法。
一個決策樹的學習過程包括三個步驟:特徵選擇、決策樹的生成以及決策樹的修剪。
9.1 特徵選擇
熵:在資訊理論與概率統計中,熵表示隨機變數不確定性的度量。設X是一個取有限個值得離散隨機變數,其概率分佈為:
則隨機變數X的熵定義為:
條件熵H(Y|X)表示在已知隨機變數X的條件下隨機變數Y的不確定性:
資訊增益
資訊增益表示得知特徵X的資訊而使得類Y的資訊的不確定性減少的程度。資訊增益大的特徵具有更強的分類能力。特徵A對訓練資料集D的資訊增益g(D,A),定義為集合D的經驗熵H(D)與特徵A給定條件下D的經驗條件熵H(D|A)之差,即:
一般地,熵H(Y)與條件熵H(Y|X)之差稱為互資訊。決策樹學習中的資訊增益等價於訓練資料集中類與特徵的互資訊。
設訓練資料集為D,|D|表示其樣本容量,即樣本個數。設有K
個類Ck,k=1,2,⋅⋅⋅,K,根據特徵A的取值將D劃分為n個子集D1,D2,⋅⋅⋅,Dn,記子集Di中屬於類Ck的樣本的集合為Dik。
則資訊增益的計算過程如下:
資訊增益比
以資訊增益作為劃分訓練資料集的特徵,存在偏向於選擇取值較多的特徵的問題。使用資訊增益比可以對這一問題進行校正。
資訊增益比表示特徵A對訓練資料集D的資訊增益比。gR(D,A)定義為其資訊增益g(D,A)與訓練資料集D關於特徵A的值的熵HA(D)之比,即:
基尼係數
分類問題中,假設有K個類,樣本點屬於第k類的概率為pk,則概率分佈的基尼係數定義為:
若樣本集合D根據特徵A是否取某一可能值a被分割成D1和D2
兩部分,即:
則在特徵A的條件下,集合D的基尼指數定義為:
基尼係數Gini(D)表示集合D的不確定性,表示經A=a分割後集合D的不確定性。基尼係數越大,樣本集合的不確定性越大,與熵類似。
從下圖可以看出基尼指數和熵之半的曲線很接近,都可以近似地代表分類誤差率。
9.2 決策樹的生成
ID3演算法
ID3演算法的核心是在決策樹各個結點上應用資訊增益準則選擇特徵,遞迴地建構決策樹。
具體的演算法步驟如下圖:
C4.5
與ID3演算法相似,C4.5演算法對ID3演算法進行了改進,C4.5在生成的過程中,用資訊增益比來選擇特徵
CART
分類樹與迴歸樹(classification and regression tree,CART)模型(Breiman)既可用於分類也可用於迴歸。
對分類樹用基尼係數(Gini index)最小化準則,進行特徵選擇,生成二叉樹,其具體步驟如下:
接下來具體說說迴歸樹是如何進行特徵選擇生成二叉迴歸樹的。
9.3決策樹剪枝
剪枝
決策樹的過擬合指的是學習時過多地考慮如何提高對訓練資料的正確分類,從而構建出過於複雜的決策樹。解決過擬合的辦法是考慮決策樹的複雜度,對已生成的決策樹進行簡化,即剪枝(從已生成的樹上裁剪調一些子樹或葉結點,並將其根結點或父結點作為新的葉結點,從而簡化分類樹模型)。
下圖展示了決策樹剪枝的過程:
10、整合學習方法
整合學習的主要思想是利用一定的手段學習出多個分類器,而且這多個分類器要求是弱分類器,然後將多個分類器進行組合公共預測。核心思想就是如何訓練處多個弱分類器以及如何將這些弱分類器進行組合。關於整合學習,大致可以分為三類:Bagging、Boosting和Stacking。
本章我們只介紹整合學習方法的基本思想,而具體的實現方法大家可以根據連結自行學習。
10.1 Bagging
Bagging即套袋法,其演算法過程如下:
1、從原始樣本集中抽取訓練集.每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中).共進行k輪抽取,得到k個訓練集.(k個訓練集相互獨立)
2、每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型.(注:根據具體問題採用不同的分類或迴歸方法,如決策樹、神經網路等)
3、對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對迴歸問題,計算上述模型的均值作為最後的結果.
我們常見的Bagging演算法是隨機森林演算法,關於隨機森林演算法的細節,可以參考部落格:https://www.jianshu.com/p/8f99592658f2
10.2 Boosting
Boosting是一族可將弱學習器提升為強學習器的演算法。關於Boosting的兩個核心問題:
1、在每一輪如何改變訓練資料的權值或概率分佈?
通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣本的權值,而誤分的樣本在後續受到更多的關注.
2、通過什麼方式來組合弱分類器?
通過加法模型將弱分類器進行線性組合,比如AdaBoost通過加權多數表決的方式,即增大錯誤率小的分類器的權值,同時減小錯誤率較大的分類器的權值。而提升樹通過擬合殘差的方式逐步減小殘差,將每一步生成的模型疊加得到最終模型。
我們常見的Boosting演算法有AdaBoost,梯度提升決策樹GBDT,XgBoost以及LightGBM。大家可以根據下面的參考資料進行學習:
AdaBoost:https://www.jianshu.com/p/f2017cc696e6
GBDT:https://www.jianshu.com/p/c32af083be5b
Xgboost:原論文:https://arxiv.org/pdf/1603.02754v1.pdf
部落格:https://blog.csdn.net/github_38414650/article/details/76061893
LightGBM:LightGBM 中文文件:http://lightgbm.apachecn.org/cn/latest/index.html
10.3 Bagging與Boosting的異同
總結了以下四點不同:
樣本選擇
Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的.
Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化.而權值是根據上一輪的分類結果進行調整.
樣例權重
Bagging:使用均勻取樣,每個樣例的權重相等
Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大.
預測函式
Bagging:所有預測函式的權重相等.
Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重.
平行計算
Bagging:各個預測函式可以並行生成
Boosting:各個預測函式只能順序生成,因為後一個模型引數需要前一輪模型的結果.
10.4 Stacking
stacking 就是當用初始訓練資料學習出若干個基學習器後,將這幾個學習器的預測結果作為新的訓練集,來學習一個新的學習器。
具體的原理以及python的實現例子可以參考文章:https://www.jianshu.com/p/3d2bd58908d0
11、總結一下機器學習中的損失函式
11.1 0-1損失函式
0-1損失是指,預測值和目標值不相等為1,否則為0:
11.2 絕對值損失函式
絕對值損失函式為:
11.3 log對數損失函式
邏輯迴歸的損失函式就是對數損失函式,log損失函式的標準形式:
11.4 平方損失函式
迴歸問題中經常使用平方損失函式:
11.5 指數損失函式
AdaBoost就是一指數損失函式為損失函式的。 指數損失函式的標準形式:
11.6 Hinge損失函式
SVM中使用的是Hinge損失函式:
參考資料:
1、線性迴歸原理和實現基本認識:https://blog.csdn.net/lisi1129/article/details/68925799
2、從貝葉斯角度看L1及L2正則化:
https://www.jianshu.com/p/4d562f2c06b8
3、梯度下降(Gradient Descent)小結:https://www.cnblogs.com/pinard/p/5970503.html
4、L1正則化及推導:https://www.jianshu.com/p/2f60e672d4f0
5、支援向量機系列:http://blog.pluskid.org/?page_id=683
6、合頁損失函式的理解:https://blog.csdn.net/lz_peter/article/details/79614556
7、李航統計學習方法——演算法3樸素貝葉斯法:https://www.cnblogs.com/bethansy/p/7435740.html
8、機器學習-決策樹:https://www.jianshu.com/p/8c4a3ef74589
9、整合學習系列(七)-Stacking原理及Python實現:https://www.jianshu.com/p/3d2bd58908d0
10、整合學習—boosting和bagging異同https://www.cnblogs.com/dudumiaomiao/p/6361777.html
11、整合學習系列(一)-隨機森林演算法:https://www.jianshu.com/p/8f99592658f2
12、整合學習系列(二)-AdaBoost演算法原理:
https://www.jianshu.com/p/f2017cc696e6
13、整合學習系列(五)-GBDT(梯度提升決策樹):
https://www.jianshu.com/p/c32af083be5b
14、Xgboost論文:https://arxiv.org/pdf/1603.02754v1.pdf
15、通俗、有邏輯的寫一篇說下Xgboost的原理:https://blog.csdn.net/github_38414650/article/details/76061893
16、LightGBM 中文文件:http://lightgbm.apachecn.org/cn/latest/index.html
17、機器學習總結(一):常見的損失函式
https://blog.csdn.net/weixin_37933986/article/details/68488339
原文釋出時間為:2018-09-28
本文作者: 石曉文 石曉文