作者:石曉文,中國人民大學信息學院在讀研究生
本系列主要根據吳恩達老師的課程、李航老師的統(tǒng)計學習方法以及自己平時的學習資料整理!在本文章中,有些地方寫的十分簡略,不過詳細的介紹我都附上了相應的博客鏈接,大家可以根據相應的博客鏈接學習更詳細的內容。
本文的目錄先列在這里啦:
Arthur Samuel:在進行特定編程的情況下,給予計算機學習能力的領域。
Tom Mitchell:一個程序被認為能從經驗E中學習,解決任務T,達到性能度量值P,當且僅當,有了經驗E后,經過P評判,程序在處理T時的性能有所提升。
根據訓練數據是否有標記信息,機器學習任務大致分為兩大類:監(jiān)督學習和非監(jiān)督學習,分類和回歸是監(jiān)督學習的代表,而聚類是非監(jiān)督學習的代表。
輸入空間:在監(jiān)督學習中,將輸入所有可能取值的集合稱為輸入空間。
特征空間:每個具體的輸入是一個實例,通常由特征向量表示,所有特征向量存在的空間成為特征空間。有時輸入空間和特征空間為相同的空間,有時為不同的空間,需要將實例從輸入空間映射到輸出空間。
輸出空間:在監(jiān)督學習中,將輸出所有可能取值的集合稱為輸出空間。
假設空間:監(jiān)督學習的目的在于學習一個由輸入到輸出的映射,這一映射由模型來表示。由輸入空間到輸出空間的映射的集合,稱為假設空間。舉個簡單的例子,在一元線性回歸中,假設空間即所有的直線y=ax+b組成的集合,我們的目標就是找到一條y=a'x+b',使得損失最小。
生成模型:生成模型由數據學習聯合概率分布P(X,Y),按后求出條件概率分布P(Y|X),作為預測的模型。之所以被稱為生成方法,是因為模型表示了給定輸入X產生輸出Y的關系。典型的模型有樸素貝葉斯方法和隱馬爾可夫模型的。
判別模型:判別模型由數據直接學習決策函數f(X),或者條件概率分布P(Y|X)。判別方法關心的是對給定的輸入X,應該預測什么樣的輸出Y。典型的判別模型包括k近鄰算法,感知機,決策樹,邏輯回歸,支持向量機等。
線性回歸是最簡單的機器學習模型,其假設輸入和輸出之間滿足線性關系,假設我們想要通過房屋尺寸來預測房價,通過將收集到的數據繪制在二維坐標系中,我們總中擬合得到圖中的直線:
以二元線性回歸為例,其表達式如下:
對具有n個變量的多元線性回歸問題,其一般表達式為:
線性回歸的損失函數一般是平方損失函數(上標i代表第i個數據,下表i代表第i維特征):
有時候我們可能把這個式子想的比較想當然,其實我們可以從極大似然的角度推導出平方損失函數,這時我們會假設損失服從正態(tài)分布,具體參考文章:
https://www.jianshu.com/p/4d562f2c06b8
梯度下降(Gradient Descent)是一個用來求函數最小值的算法,后面會有一張專門講解梯度下降法及其改進算法,這里只是介紹一個基本的思想。
梯度下降背后的思想是:開始時我們隨機選擇一個參數的組合,計算代價函數,然后我們尋找下一個能讓代價函數值下降最多的參數組合。我們持續(xù)這么做直到找到一個局部最小值(local minimum),因為我們并沒有嘗試完所有的參數組合,所以不能確定我們得到的局部最小值是否便是全局最小值(global minimum),選擇不同的初始參數組合,可能會找到不同的局部最小值。
具體的做法就是:每一次都同時讓所有的參數減去學習速率乘以損失函數的導數。
其中α是學習率(learning rate),它決定了我們沿著能讓代價函數下降程度最大的方向向下邁出的步子有多大。
除學習率外,使用梯度下降法時需要對特征進行標準化處理,以二元線性回歸為例,如果兩維的數值范圍相差特別大,梯度下降算法需要非常多次的迭代才能收斂,解決的方法是嘗試將所有特征的尺度都盡量縮放到-1到1之間:
再進一步介紹算法之前,我們先來介紹一下梯度下降法的分類及對其的改進。
梯度下降法可以分為下面三種:
批量梯度下降法(Batch Gradient Descent):批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新參數時使用所有的樣本來進行更新。
隨機梯度下降法(Stochastic Gradient Descent):求梯度時沒有用所有的m個樣本的數據,而是僅僅選取一個樣本j來求梯度。
小批量梯度下降法(Mini-batch Gradient Descent):小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對于m個樣本,我們采用x個樣子來迭代。
三者到達極小值的路徑大致可以表示為下圖:
其中,藍色為批量梯度下降法,綠色為小批量梯度下降法,紫色為隨機梯度下降法。
在講解一些常見的梯度下降改進算法之前,我們先來看一下指數加權平均數(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,基本沒有進行修正。
在機器學習中,在計算指數加權平均數的大部分時候,大家不在乎執(zhí)行偏差修正,因為 大部分人寧愿熬過初始時期,拿到具有偏差的估測,然后繼續(xù)計算下去。如果你關心初始時 期的偏差,在剛開始計算指數加權移動平均數的時
動量梯度下降法基本的想法就是計算梯度的指數加權平均數,并利用該梯度 更新你的權重。假設我們使用梯度下降法更新參數的路徑如下圖中藍色的線所示:
上圖中的路徑上下波動減慢了梯度下降法的速度,如果我們用更大的學習率,可能導致這種波動進一步加大,變成圖中的紫色的線。因此,你希望在縱軸上學習慢一點,消除這種上下的擺動,而在橫軸上,你希望快速從左向右移動,移動到最小值處。
我們之前介紹的指數加權平均數,可以反映近一段時間的趨勢,在縱軸上的上下波動,使得平均值接近于0,而在橫軸方向的平均值仍然較大。利用這種思想,Momentum的計算過程如下:
還是用上面的例子,我們假設縱軸代表參數b,橫軸代表參數W:
所以,你想減緩??方向的學習,即縱軸方向,同時加快,至少不是減緩橫軸方向的學習, RMSprop 算法可以實現這一點,將趨勢變成下面的綠色的線:
我們這里仍然運用指數加權平均數,但并不是dW的平均數,而是(dW)^2的平均數,即:
在參數更新時:
由于db較大,dw較小,因此SdW較小,Sdb較大,所以可以減小縱軸上的擺動,加速橫軸上的學習速度。
Adam 優(yōu)化算法基本上就是將 Momentum 和 RMSprop 結合在一起,它使用的是經過偏差修正后的指數加權平均數:
最終的參數更新變?yōu)椋?/span>
Adam 算法結合了 Momentum 和 RMSprop 梯度下降法,并且是一種極其常用的學習算法,被證明能有效適用于不同神經網絡,適用于廣泛的結構。
邏輯回歸被應用于分類問題,通過sigmoid函數對線性回歸的預測值進行轉換,使其在[0,1]的范圍:
其中,g被稱為sigmoid函數,其形式如下:
邏輯回歸使用的損失函數并非平方損失函數,而是如下的形式:
主要的原因是,平方損失函數對于邏輯回歸來說是非凸的,使用梯度下降法可能收斂到局部極小值,而上面的損失函數是凸函數,可以得到全局最小值:
邏輯回歸的推導是面試中經常會問到的問題,通過梯度下降法進行推導時,我們用到的主要性質時sigmoid函數的導數性質:g'(x) = g(x)(1-g(x)),一定要牢記于心。下圖是推導過程:
可以記一下結論,到時候用于檢驗自己推導的對不對。對第j個參數求梯度,結果為:
邏輯回歸為什么會選擇sigmoid函數呢,總結有以下幾方面吧:
1、函數連續(xù),單調遞增
2、求導方便
3、輸出范圍為(0,1),可以用作輸出層,結果可以表示概率
4、抑制兩頭,對中間細微變化敏感,對分類有利。
邏輯回歸還可以用于多分類,我們常用的策略被稱為one vs all。
假設我們有三個類,如下圖所示:
采用one vs all策略時,有多少類別,我們就要訓練幾個分類器。每次選擇一個類別作為正例,其他所有類別的樣本作為負例,訓練一個分類器:
最后,在我們需要做預測時,我們將所有的分類器都運行一遍,然后對每一個輸入變量,都選擇最高可能性的輸出變量,即:
機器學習的目的是使學到的模型不僅對已知的數據而且對未知的數據都能有很好的預測能力。當損失函數給定時,模型在訓練集上的損失被稱為訓練誤差,在測試集上的損失被稱為測試誤差。
如果模型不能很好的適應訓練集,會造成欠擬合(underfit)。相反,如果模型過于強調擬合原始數據,會導致對未知數據擬合很差,這種情況被稱為過擬合(overfit)。
看下面的例子:
隨著模型的復雜度的提升,訓練誤差和測試誤差往往呈現下面的趨勢:
正則化的目的是對過大的參數進行一定的懲罰,降低其對模型的影響,使我們能夠得到一個較為簡單的模型。這符合奧卡姆剃刀的原理,即在所有可能選擇的模型中,能夠很好地解釋已知數據并且十分簡單的才是最好的模型。
我們常用的正則化有L1正則化和L2正則化。
L1正則化即在損失函數的基礎上增加參數的1范數:
我們常說,L1正則化具有參數選擇的作用,直觀從圖像理解,如下:
當然,也可以通過數學推導得到結論,具體參考文章:https://www.jianshu.com/p/2f60e672d4f0
從貝葉斯角度看,當參數的先驗概率符合拉普拉斯分布時,最大化后驗概率可以得到添加1范數的損失函數。
L2正則化即在損失函數的基礎上增加參數的2范數:
L2正則化具有權重衰減的功能,圖像如下:
從貝葉斯角度看,當參數的先驗概率符合高斯分布時,最大化后驗概率可以得到添加2范數的損失函數。
從貝葉斯角度看L1正則化和L2正則化,參考文章:https://www.jianshu.com/p/4d562f2c06b8
當你運行一個學習算法時,如果這個算法的表現不理想,那么多半是出現兩種情況:要么是偏差比較大,要么是方差比較大。換句話說,出現的情況要么是欠擬合,要么是過擬合問題。那么這兩種情況,哪個和偏差有關,哪個和方差有關,或者是不是和兩個都有關?
偏差基本對應于欠擬合問題,其表現是模型在訓練集和驗證集上的誤差都比較大,隨著數據集的增加,模型在訓練集和驗證集上的誤差表現如下:
在面臨高偏差時,我們應該嘗試以下的方法:嘗試獲得更多的特征,嘗試增加多項式特征,嘗試減少正則化程度λ。
方差問題對應于過擬合問題,其表現是模型在訓練集上誤差比較小,而在驗證集上的誤差遠遠高于訓練集。另一個解釋方差問題的角度是,對于同一個形式的模型(比如都是四次回歸),針對不同的訓練集,其擬合得到的參數相差很大。隨著數據集的增加,模型在訓練集和驗證集上的誤差表現如下:
在面臨高偏差時,我們應該采取下面的方法:獲得更多的訓練實例,嘗試減少特征的數量,嘗試增加正則化程度λ
關于SVM的知識,可以參照pluskid的博客,寫的真心贊!
博客鏈接:http://blog.pluskid.org/?page_id=683
SVM的目標是找到一個最大間隔的分類器,使得兩類數據點到超平面的最小距離最大:
恰好在邊界上的點被稱為支撐向量Support Vector。
其目標函數為:
其中,約束條件在支撐向量處取得等號,非支撐向量取大于號。
利用拉格朗日乘子法,上面的目標函數和約束條件可以寫為一個式子:
如果我們令:
我們分析一下上式,在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的。
前面介紹的是線性可分的情況,然而還有線性不可分以及非線性的情況。這里我們先來介紹非線性的情況,我們會介紹到一種核函數的方法。
如圖中的數據,是一種典型的非線性情況,我們希望找到一個圓來區(qū)分兩類數據:
因此超平面是類似下面的形式:
因此,我們可以將低維空間中的數據映射到高維空間中去,進而得到一個最大間隔的超平面。一般的,如果我們用 ?(?)表示這個映射,則超平面變?yōu)椋?/span>
但上面的方法會面臨維數爆炸的問題,如果二維空間做映射,選擇的新空間是原始空間的所有一階和二階的組合,得到了五個維度;如果原始空間是三維,那么我們會得到 19 維的新空間這個數目是呈爆炸性增長的。所以就需要核函數方法出馬了。
使用核函數方法,可以在低維空間中快速計算兩個向量在映射過后的空間中的內積,例如在二維空間中使用多項式核函數,可以快速得到五維空間中映射結果的內積(形式相同):
使用核函數,我們現在的分類超平面變?yōu)椋?/span>
常見的核函數有多項式核,高斯核,線性核:
對于這種偏離正常位置很遠的數據點,我們稱之為outlier ,在我們原來的 SVM 模型里,outlier 的存在有可能造成很大的影響:
用黑圈圈起來的那個藍點是一個outlier ,它偏離了自己原本所應該在的那個半空間,如果直接忽略掉它的話,原來的分隔超平面還是挺好的,但是由于這個 outlier 的出現,導致分隔超平面不得不被擠歪了,變成途中黑色虛線所示(這只是一個示意圖,并沒有嚴格計算精確坐標),同時分類間隔也相應變小了。當然,更嚴重的情況是,如果這個 outlier 再往右上移動一些距離的話,我們將無法構造出能將數據分開的超平面來。
為了處理這種情況,SVM 允許數據點在一定程度上偏離一下超平面。例如上圖中,黑色實線所對應的距離,就是該 outlier 偏離的距離,如果把它移動回來,就剛好落在原來的超平面上,而不會使得超平面發(fā)生變形了。具體來說,原來的約束條件變?yōu)椋?/span>
而目標函數變?yōu)椋?/span>
其中 C 是一個參數,我們可以認為是對outlier的容忍程度,如果C越大,我們對outliers的容忍程度越小,反之越大。
完整的形式如下:
SVM的損失函數被稱為合頁損失函數,如下圖:
當樣本被正確分類且函數間隔大于1時,合頁損失才是0,否則,就會產生一定的損失。
總結了幾點LR與SVM的區(qū)別,和大家分享:
1、LR可以輸出屬于每一類別的概率,SVM則不行
2、LR是基于概率最大化推導的,而SVM是基于最大化幾何間隔推導的
3、SVM的決策超平面只有少量的支撐向量決定,而LR所有的樣本都參與決策面的更新,所以SVM對異常數據并不敏感,LR更加敏感
4、SVM依賴數據表達的距離測度,所以需要先對數據進行標準化處理,但是LR不需要。
樸素貝葉斯是基于貝葉斯定理與特征條件獨立假設的分類方法。
貝葉斯定理是關于隨機事件A和B的條件概率的定理,形式如下:
樸素貝葉斯分類的基本思想是:給出待分類項,求解在此項出現的條件下其他各個類別的出現的概率,哪個概率較大就認為待分類項屬于哪個類別,用貝葉斯定理表示為(這里的上標表示一維特征):
分母對于所有的c都是相同的,因此可以省去,故有:
我們要做的就是統(tǒng)計對每一個類別來說,每一維特征每個特征出現的頻率。頻率有可能出現0的情況,我們需要進行*拉普拉斯平滑操作。
拉普拉斯平滑:就是對每類別下所有劃分的計數加1,這樣如果訓練樣本集數量充分大時,并不會對結果產生影響,并且解決了頻率為0的尷尬局面。
決策樹(Decision Tree)是數據挖掘中一種基本的分類和回歸方法,它呈樹形結構,在分類問題中,表示基于特征對實例進行分類的過程,可以認為是if?then規(guī)則的集合,也可認為是定義在特征空間與類空間上的條件概率分布。下圖是一個簡單的決策樹示例:
決策樹模型的主要優(yōu)點是模型具有可讀性,分類速度快。在學習時,利用訓練數據,根據損失函數最小化原則建立決策樹模型;而在預測時,對新的數據,利用決策樹模型進行分類。主要的決策樹算法有ID3算法、C4.5算法和CART算法。
一個決策樹的學習過程包括三個步驟:特征選擇、決策樹的生成以及決策樹的修剪。
熵:在信息論與概率統(tǒng)計中,熵表示隨機變量不確定性的度量。設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的不確定性。基尼系數越大,樣本集合的不確定性越大,與熵類似。
從下圖可以看出基尼指數和熵之半的曲線很接近,都可以近似地代表分類誤差率。
ID3算法
ID3算法的核心是在決策樹各個結點上應用信息增益準則選擇特征,遞歸地建構決策樹。
具體的算法步驟如下圖:
C4.5
與ID3算法相似,C4.5算法對ID3算法進行了改進,C4.5在生成的過程中,用信息增益比來選擇特征
CART
分類樹與回歸樹(classification and regression tree,CART)模型(Breiman)既可用于分類也可用于回歸。
對分類樹用基尼系數(Gini index)最小化準則,進行特征選擇,生成二叉樹,其具體步驟如下:
接下來具體說說回歸樹是如何進行特征選擇生成二叉回歸樹的。
剪枝
決策樹的過擬合指的是學習時過多地考慮如何提高對訓練數據的正確分類,從而構建出過于復雜的決策樹。解決過擬合的辦法是考慮決策樹的復雜度,對已生成的決策樹進行簡化,即剪枝(從已生成的樹上裁剪調一些子樹或葉結點,并將其根結點或父結點作為新的葉結點,從而簡化分類樹模型)。
下圖展示了決策樹剪枝的過程:
集成學習的主要思想是利用一定的手段學習出多個分類器,而且這多個分類器要求是弱分類器,然后將多個分類器進行組合公共預測。核心思想就是如何訓練處多個弱分類器以及如何將這些弱分類器進行組合。關于集成學習,大致可以分為三類:Bagging、Boosting和Stacking。
本章我們只介紹集成學習方法的基本思想,而具體的實現方法大家可以根據鏈接自行學習。
Bagging即套袋法,其算法過程如下:
1、從原始樣本集中抽取訓練集.每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中).共進行k輪抽取,得到k個訓練集.(k個訓練集相互獨立)
2、每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型.(注:根據具體問題采用不同的分類或回歸方法,如決策樹、神經網絡等)
3、對分類問題:將上步得到的k個模型采用投票的方式得到分類結果;對回歸問題,計算上述模型的均值作為最后的結果.
我們常見的Bagging算法是隨機森林算法,關于隨機森林算法的細節(jié),可以參考博客:https://www.jianshu.com/p/8f99592658f2
Boosting是一族可將弱學習器提升為強學習器的算法。關于Boosting的兩個核心問題:
1、在每一輪如何改變訓練數據的權值或概率分布?
通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣本的權值,而誤分的樣本在后續(xù)受到更多的關注.
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
總結了以下四點不同:
樣本選擇
Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的.
Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發(fā)生變化.而權值是根據上一輪的分類結果進行調整.
樣例權重
Bagging:使用均勻取樣,每個樣例的權重相等
Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大.
預測函數
Bagging:所有預測函數的權重相等.
Boosting:每個弱分類器都有相應的權重,對于分類誤差小的分類器會有更大的權重.
并行計算
Bagging:各個預測函數可以并行生成
Boosting:各個預測函數只能順序生成,因為后一個模型參數需要前一輪模型的結果.
stacking 就是當用初始訓練數據學習出若干個基學習器后,將這幾個學習器的預測結果作為新的訓練集,來學習一個新的學習器。
具體的原理以及python的實現例子可以參考文章:https://www.jianshu.com/p/3d2bd58908d0
0-1損失是指,預測值和目標值不相等為1,否則為0:
絕對值損失函數為:
邏輯回歸的損失函數就是對數損失函數,log損失函數的標準形式:
回歸問題中經常使用平方損失函數:
AdaBoost就是一指數損失函數為損失函數的。 指數損失函數的標準形式:
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、李航統(tǒng)計學習方法——算法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
丘老師手把手教你用Python實踐深度學習
原價799,限時特惠
最后幾天活動價
只要399!
對!
你沒有聽錯!
399!
掃描下圖二維碼即可學習
聯系客服