作者:石曉文,中國(guó)人民大學(xué)信息學(xué)院在讀研究生 本系列主要根據(jù)吳恩達(dá)老師的課程,、李航老師的統(tǒng)計(jì)學(xué)習(xí)方法以及自己平時(shí)的學(xué)習(xí)資料整理!在本文章中,,有些地方寫(xiě)的十分簡(jiǎn)略,,不過(guò)詳細(xì)的介紹我都附上了相應(yīng)的博客鏈接,大家可以根據(jù)相應(yīng)的博客鏈接學(xué)習(xí)更詳細(xì)的內(nèi)容,。 本文的目錄先列在這里啦: 1,、引言2、線(xiàn)性回歸3,、梯度下降法3.1 梯度下降法分類(lèi)3.2 梯度下降法改進(jìn)4,、邏輯回歸5、過(guò)擬合和正則化5.1 過(guò)擬合5.2 正則化6,、方差vs偏差6.1 偏差(Bias)6.2 方差(Variance)7,、支持向量機(jī)SVM7.1 最大間隔分類(lèi)器7.2 超平面求解7.3 核函數(shù)Kernel7.4 Outliers7.5 SVM的損失函數(shù)7.6 LR和SVM的區(qū)別8、樸素貝葉斯8.1 貝葉斯定理8.2 樸素貝葉斯分類(lèi)9,、決策樹(shù)方法9.1 特征選擇9.2 決策樹(shù)的生成9.3決策樹(shù)剪枝10,、集成學(xué)習(xí)方法10.1 Bagging10.2 Boosting10.3 Bagging與Boosting的異同10.4 Stacking11、總結(jié)一下機(jī)器學(xué)習(xí)中的損失函數(shù)11.1 0-1損失函數(shù)11.2 絕對(duì)值損失函數(shù)11.3 log對(duì)數(shù)損失函數(shù)11.4 平方損失函數(shù)11.5 指數(shù)損失函數(shù)11.6 Hinge損失函數(shù)1,、引言機(jī)器學(xué)習(xí)是什么,?Arthur Samuel:在進(jìn)行特定編程的情況下,給予計(jì)算機(jī)學(xué)習(xí)能力的領(lǐng)域,。 監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí)根據(jù)訓(xùn)練數(shù)據(jù)是否有標(biāo)記信息,機(jī)器學(xué)習(xí)任務(wù)大致分為兩大類(lèi):監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí),,分類(lèi)和回歸是監(jiān)督學(xué)習(xí)的代表,,而聚類(lèi)是非監(jiān)督學(xué)習(xí)的代表。 輸入空間,、特征空間,、輸出空間,、假設(shè)空間輸入空間:在監(jiān)督學(xué)習(xí)中,將輸入所有可能取值的集合稱(chēng)為輸入空間,。 生成模型和判別模型生成模型:生成模型由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率分布P(X,Y),,按后求出條件概率分布P(Y|X),,作為預(yù)測(cè)的模型。之所以被稱(chēng)為生成方法,,是因?yàn)槟P捅硎玖私o定輸入X產(chǎn)生輸出Y的關(guān)系,。典型的模型有樸素貝葉斯方法和隱馬爾可夫模型的。 2、線(xiàn)性回歸模型表示線(xiàn)性回歸是最簡(jiǎn)單的機(jī)器學(xué)習(xí)模型,,其假設(shè)輸入和輸出之間滿(mǎn)足線(xiàn)性關(guān)系,,假設(shè)我們想要通過(guò)房屋尺寸來(lái)預(yù)測(cè)房?jī)r(jià),通過(guò)將收集到的數(shù)據(jù)繪制在二維坐標(biāo)系中,,我們總中擬合得到圖中的直線(xiàn): 以二元線(xiàn)性回歸為例,,其表達(dá)式如下: 對(duì)具有n個(gè)變量的多元線(xiàn)性回歸問(wèn)題,,其一般表達(dá)式為: 損失函數(shù)線(xiàn)性回歸的損失函數(shù)一般是平方損失函數(shù)(上標(biāo)i代表第i個(gè)數(shù)據(jù),下表i代表第i維特征): 有時(shí)候我們可能把這個(gè)式子想的比較想當(dāng)然,,其實(shí)我們可以從極大似然的角度推導(dǎo)出平方損失函數(shù),,這時(shí)我們會(huì)假設(shè)損失服從正態(tài)分布,具體參考文章: 梯度下降梯度下降(Gradient Descent)是一個(gè)用來(lái)求函數(shù)最小值的算法,,后面會(huì)有一張專(zhuān)門(mén)講解梯度下降法及其改進(jìn)算法,,這里只是介紹一個(gè)基本的思想。 具體的做法就是:每一次都同時(shí)讓所有的參數(shù)減去學(xué)習(xí)速率乘以損失函數(shù)的導(dǎo)數(shù),。 其中α是學(xué)習(xí)率(learning rate),,它決定了我們沿著能讓代價(jià)函數(shù)下降程度最大的方向向下邁出的步子有多大。 除學(xué)習(xí)率外,,使用梯度下降法時(shí)需要對(duì)特征進(jìn)行標(biāo)準(zhǔn)化處理,,以二元線(xiàn)性回歸為例,如果兩維的數(shù)值范圍相差特別大,,梯度下降算法需要非常多次的迭代才能收斂,,解決的方法是嘗試將所有特征的尺度都盡量縮放到-1到1之間: 3、梯度下降法再進(jìn)一步介紹算法之前,,我們先來(lái)介紹一下梯度下降法的分類(lèi)及對(duì)其的改進(jìn),。 3.1 梯度下降法分類(lèi)梯度下降法可以分為下面三種: 批量梯度下降法(Batch Gradient Descent):批量梯度下降法,是梯度下降法最常用的形式,,具體做法也就是在更新參數(shù)時(shí)使用所有的樣本來(lái)進(jìn)行更新,。 隨機(jī)梯度下降法(Stochastic Gradient Descent):求梯度時(shí)沒(méi)有用所有的m個(gè)樣本的數(shù)據(jù),而是僅僅選取一個(gè)樣本j來(lái)求梯度,。 小批量梯度下降法(Mini-batch Gradient Descent):小批量梯度下降法是批量梯度下降法和隨機(jī)梯度下降法的折衷,,也就是對(duì)于m個(gè)樣本,我們采用x個(gè)樣子來(lái)迭代,。 三者到達(dá)極小值的路徑大致可以表示為下圖: 其中,,藍(lán)色為批量梯度下降法,綠色為小批量梯度下降法,,紫色為隨機(jī)梯度下降法,。 3.2 梯度下降法改進(jìn)指數(shù)加權(quán)平均數(shù)在講解一些常見(jiàn)的梯度下降改進(jìn)算法之前,,我們先來(lái)看一下指數(shù)加權(quán)平均數(shù)(Exponentially weighted averages):指數(shù)加權(quán)平均數(shù)是對(duì)趨勢(shì)的一種刻畫(huà),計(jì)算公式如下: 在上式中,,vt是t時(shí)刻的指數(shù)加權(quán)平均值,,v0 = 0,θt是第t時(shí)刻的實(shí)際值,。β是一個(gè)參數(shù),。簡(jiǎn)單的理解,β代表了vt刻畫(huà)的是多少天的平均值,,如果β太小,,那么vt越接近于θt,如果β很大,,那么vt就能代表一個(gè)更長(zhǎng)時(shí)間的平均值,。 大體上,vt大概是1/(1-β)天的平均值,,即當(dāng)β=0.1時(shí),,我們可以認(rèn)為vt代表了近10天的平均值。β=0.02時(shí),,我們可以認(rèn)為vt代表了近50天的平均值,,如下圖所示,紅色表示的是β=0.1時(shí)vt的變化,,綠色表示的是β=0.02時(shí)vt的變化: 在指數(shù)加權(quán)平均的過(guò)程中,,還有一個(gè)很重要的概念,叫做偏差修正(Bias correction),可以看到,,如果v0=0,,那么v1 = β*θ1,特別地,,如果β=0.1,,那么 在機(jī)器學(xué)習(xí)中,在計(jì)算指數(shù)加權(quán)平均數(shù)的大部分時(shí)候,,大家不在乎執(zhí)行偏差修正,,因?yàn)?大部分人寧愿熬過(guò)初始時(shí)期,,拿到具有偏差的估測(cè),然后繼續(xù)計(jì)算下去,。如果你關(guān)心初始時(shí) 期的偏差,,在剛開(kāi)始計(jì)算指數(shù)加權(quán)移動(dòng)平均數(shù)的時(shí) 動(dòng)量梯度下降法(Momentum)動(dòng)量梯度下降法基本的想法就是計(jì)算梯度的指數(shù)加權(quán)平均數(shù),并利用該梯度 更新你的權(quán)重,。假設(shè)我們使用梯度下降法更新參數(shù)的路徑如下圖中藍(lán)色的線(xiàn)所示: 上圖中的路徑上下波動(dòng)減慢了梯度下降法的速度,,如果我們用更大的學(xué)習(xí)率,可能導(dǎo)致這種波動(dòng)進(jìn)一步加大,,變成圖中的紫色的線(xiàn),。因此,你希望在縱軸上學(xué)習(xí)慢一點(diǎn),,消除這種上下的擺動(dòng),,而在橫軸上,你希望快速?gòu)淖笙蛴乙苿?dòng),,移動(dòng)到最小值處,。 我們之前介紹的指數(shù)加權(quán)平均數(shù),可以反映近一段時(shí)間的趨勢(shì),,在縱軸上的上下波動(dòng),使得平均值接近于0,,而在橫軸方向的平均值仍然較大,。利用這種思想,Momentum的計(jì)算過(guò)程如下: RMSprop(root mean square prop)還是用上面的例子,,我們假設(shè)縱軸代表參數(shù)b,,橫軸代表參數(shù)W: 所以,你想減緩??方向的學(xué)習(xí),,即縱軸方向,,同時(shí)加快,至少不是減緩橫軸方向的學(xué)習(xí),, RMSprop 算法可以實(shí)現(xiàn)這一點(diǎn),,將趨勢(shì)變成下面的綠色的線(xiàn): 我們這里仍然運(yùn)用指數(shù)加權(quán)平均數(shù),但并不是dW的平均數(shù),,而是(dW)^2的平均數(shù),,即: 在參數(shù)更新時(shí): 由于db較大,dw較小,,因此SdW較小,,Sdb較大,所以可以減小縱軸上的擺動(dòng),,加速橫軸上的學(xué)習(xí)速度,。 Adam(Adaptive Moment Estimation)Adam 優(yōu)化算法基本上就是將 Momentum 和 RMSprop 結(jié)合在一起,,它使用的是經(jīng)過(guò)偏差修正后的指數(shù)加權(quán)平均數(shù): 最終的參數(shù)更新變?yōu)椋?/span> Adam 算法結(jié)合了 Momentum 和 RMSprop 梯度下降法,并且是一種極其常用的學(xué)習(xí)算法,,被證明能有效適用于不同神經(jīng)網(wǎng)絡(luò),,適用于廣泛的結(jié)構(gòu)。 4,、邏輯回歸基本原理邏輯回歸被應(yīng)用于分類(lèi)問(wèn)題,,通過(guò)sigmoid函數(shù)對(duì)線(xiàn)性回歸的預(yù)測(cè)值進(jìn)行轉(zhuǎn)換,使其在[0,1]的范圍: 其中,,g被稱(chēng)為sigmoid函數(shù),,其形式如下: 損失函數(shù)邏輯回歸使用的損失函數(shù)并非平方損失函數(shù),而是如下的形式: 主要的原因是,,平方損失函數(shù)對(duì)于邏輯回歸來(lái)說(shuō)是非凸的,,使用梯度下降法可能收斂到局部極小值,而上面的損失函數(shù)是凸函數(shù),,可以得到全局最小值: 過(guò)程推導(dǎo)邏輯回歸的推導(dǎo)是面試中經(jīng)常會(huì)問(wèn)到的問(wèn)題,,通過(guò)梯度下降法進(jìn)行推導(dǎo)時(shí),我們用到的主要性質(zhì)時(shí)sigmoid函數(shù)的導(dǎo)數(shù)性質(zhì):g'(x) = g(x)(1-g(x)),,一定要牢記于心,。下圖是推導(dǎo)過(guò)程: 可以記一下結(jié)論,到時(shí)候用于檢驗(yàn)自己推導(dǎo)的對(duì)不對(duì),。對(duì)第j個(gè)參數(shù)求梯度,,結(jié)果為: 邏輯回歸為什么會(huì)選擇sigmoid函數(shù)呢,總結(jié)有以下幾方面吧: 解決多分類(lèi)問(wèn)題邏輯回歸還可以用于多分類(lèi),,我們常用的策略被稱(chēng)為one vs all。 假設(shè)我們有三個(gè)類(lèi),,如下圖所示: 采用one vs all策略時(shí),,有多少類(lèi)別,,我們就要訓(xùn)練幾個(gè)分類(lèi)器,。每次選擇一個(gè)類(lèi)別作為正例,,其他所有類(lèi)別的樣本作為負(fù)例,,訓(xùn)練一個(gè)分類(lèi)器: 最后,在我們需要做預(yù)測(cè)時(shí),,我們將所有的分類(lèi)器都運(yùn)行一遍,,然后對(duì)每一個(gè)輸入變量,都選擇最高可能性的輸出變量,,即: 5,、過(guò)擬合和正則化5.1 過(guò)擬合機(jī)器學(xué)習(xí)的目的是使學(xué)到的模型不僅對(duì)已知的數(shù)據(jù)而且對(duì)未知的數(shù)據(jù)都能有很好的預(yù)測(cè)能力。當(dāng)損失函數(shù)給定時(shí),,模型在訓(xùn)練集上的損失被稱(chēng)為訓(xùn)練誤差,,在測(cè)試集上的損失被稱(chēng)為測(cè)試誤差。 如果模型不能很好的適應(yīng)訓(xùn)練集,,會(huì)造成欠擬合(underfit),。相反,如果模型過(guò)于強(qiáng)調(diào)擬合原始數(shù)據(jù),,會(huì)導(dǎo)致對(duì)未知數(shù)據(jù)擬合很差,,這種情況被稱(chēng)為過(guò)擬合(overfit)。 看下面的例子: 隨著模型的復(fù)雜度的提升,,訓(xùn)練誤差和測(cè)試誤差往往呈現(xiàn)下面的趨勢(shì): 5.2 正則化正則化的目的是對(duì)過(guò)大的參數(shù)進(jìn)行一定的懲罰,,降低其對(duì)模型的影響,使我們能夠得到一個(gè)較為簡(jiǎn)單的模型,。這符合奧卡姆剃刀的原理,,即在所有可能選擇的模型中,能夠很好地解釋已知數(shù)據(jù)并且十分簡(jiǎn)單的才是最好的模型,。 我們常用的正則化有L1正則化和L2正則化。 L1正則化L1正則化即在損失函數(shù)的基礎(chǔ)上增加參數(shù)的1范數(shù): 我們常說(shuō),,L1正則化具有參數(shù)選擇的作用,,直觀從圖像理解,如下: 當(dāng)然,,也可以通過(guò)數(shù)學(xué)推導(dǎo)得到結(jié)論,,具體參考文章:https://www.jianshu.com/p/2f60e672d4f0 從貝葉斯角度看,當(dāng)參數(shù)的先驗(yàn)概率符合拉普拉斯分布時(shí),,最大化后驗(yàn)概率可以得到添加1范數(shù)的損失函數(shù),。 L2正則化L2正則化即在損失函數(shù)的基礎(chǔ)上增加參數(shù)的2范數(shù): L2正則化具有權(quán)重衰減的功能,圖像如下: 從貝葉斯角度看,,當(dāng)參數(shù)的先驗(yàn)概率符合高斯分布時(shí),,最大化后驗(yàn)概率可以得到添加2范數(shù)的損失函數(shù)。 從貝葉斯角度看L1正則化和L2正則化,參考文章:https://www.jianshu.com/p/4d562f2c06b8 6,、方差vs偏差當(dāng)你運(yùn)行一個(gè)學(xué)習(xí)算法時(shí),,如果這個(gè)算法的表現(xiàn)不理想,那么多半是出現(xiàn)兩種情況:要么是偏差比較大,,要么是方差比較大,。換句話(huà)說(shuō),出現(xiàn)的情況要么是欠擬合,,要么是過(guò)擬合問(wèn)題,。那么這兩種情況,哪個(gè)和偏差有關(guān),,哪個(gè)和方差有關(guān),,或者是不是和兩個(gè)都有關(guān)? 6.1 偏差(Bias)偏差基本對(duì)應(yīng)于欠擬合問(wèn)題,,其表現(xiàn)是模型在訓(xùn)練集和驗(yàn)證集上的誤差都比較大,,隨著數(shù)據(jù)集的增加,模型在訓(xùn)練集和驗(yàn)證集上的誤差表現(xiàn)如下: 在面臨高偏差時(shí),,我們應(yīng)該嘗試以下的方法:嘗試獲得更多的特征,,嘗試增加多項(xiàng)式特征,嘗試減少正則化程度λ,。 6.2 方差(Variance)方差問(wèn)題對(duì)應(yīng)于過(guò)擬合問(wèn)題,,其表現(xiàn)是模型在訓(xùn)練集上誤差比較小,而在驗(yàn)證集上的誤差遠(yuǎn)遠(yuǎn)高于訓(xùn)練集,。另一個(gè)解釋方差問(wèn)題的角度是,,對(duì)于同一個(gè)形式的模型(比如都是四次回歸),針對(duì)不同的訓(xùn)練集,,其擬合得到的參數(shù)相差很大,。隨著數(shù)據(jù)集的增加,模型在訓(xùn)練集和驗(yàn)證集上的誤差表現(xiàn)如下: 在面臨高偏差時(shí),,我們應(yīng)該采取下面的方法:獲得更多的訓(xùn)練實(shí)例,,嘗試減少特征的數(shù)量,嘗試增加正則化程度λ 7,、支持向量機(jī)SVM關(guān)于SVM的知識(shí),,可以參照pluskid的博客,寫(xiě)的真心贊,! 博客鏈接:http://blog./?page_id=683 7.1 最大間隔分類(lèi)器SVM的目標(biāo)是找到一個(gè)最大間隔的分類(lèi)器,,使得兩類(lèi)數(shù)據(jù)點(diǎn)到超平面的最小距離最大: 恰好在邊界上的點(diǎn)被稱(chēng)為支撐向量Support Vector。 其目標(biāo)函數(shù)為: 其中,,約束條件在支撐向量處取得等號(hào),,非支撐向量取大于號(hào),。 7.2 超平面求解利用拉格朗日乘子法,上面的目標(biāo)函數(shù)和約束條件可以寫(xiě)為一個(gè)式子: 如果我們令: 我們分析一下上式,,在a>=0的情況下,,對(duì)于支撐向量,后面括號(hào)中的一項(xiàng)為0,,因此對(duì)應(yīng)的a可以取得大于0的值,,而對(duì)于非支撐向量,后面括號(hào)中的一項(xiàng)大于0,,此時(shí)對(duì)應(yīng)的a必須等于0,。因此,在所有約束條件都滿(mǎn)足的情況下,,我們可以得到θ(w)=1/2 * ||w||^2,,因此原問(wèn)題可以表示成: 根據(jù)KKT條件,我們可以將上面的式子轉(zhuǎn)換為對(duì)偶形式(關(guān)于KKT條件,,參考博客:http://blog./?p=702): 因此,,我們首先對(duì)w和b進(jìn)行求導(dǎo)得到: 然后求解a,這里用到的是SMO算法,,我們不再詳細(xì)介紹,。 求解得到w和b之后,我們可以得到超平面方程為: 因此對(duì)于新點(diǎn) x 的預(yù)測(cè),,只需要計(jì)算它與訓(xùn)練數(shù)據(jù)點(diǎn)的內(nèi)積即可,。更進(jìn)一步,實(shí)際上只要針對(duì)少量的“支持向量”而不是所有的訓(xùn)練數(shù)據(jù),,因?yàn)槲覀兦懊娼榻B過(guò),,對(duì)于非支撐向量,其對(duì)應(yīng)的a是等于0的,。 7.3 核函數(shù)Kernel前面介紹的是線(xiàn)性可分的情況,,然而還有線(xiàn)性不可分以及非線(xiàn)性的情況。這里我們先來(lái)介紹非線(xiàn)性的情況,,我們會(huì)介紹到一種核函數(shù)的方法,。 如圖中的數(shù)據(jù),是一種典型的非線(xiàn)性情況,,我們希望找到一個(gè)圓來(lái)區(qū)分兩類(lèi)數(shù)據(jù): 因此超平面是類(lèi)似下面的形式: 因此,,我們可以將低維空間中的數(shù)據(jù)映射到高維空間中去,,進(jìn)而得到一個(gè)最大間隔的超平面,。一般的,如果我們用 ?(?)表示這個(gè)映射,,則超平面變?yōu)椋?/span> 但上面的方法會(huì)面臨維數(shù)爆炸的問(wèn)題,,如果二維空間做映射,,選擇的新空間是原始空間的所有一階和二階的組合,得到了五個(gè)維度,;如果原始空間是三維,,那么我們會(huì)得到 19 維的新空間這個(gè)數(shù)目是呈爆炸性增長(zhǎng)的。所以就需要核函數(shù)方法出馬了,。 使用核函數(shù)方法,,可以在低維空間中快速計(jì)算兩個(gè)向量在映射過(guò)后的空間中的內(nèi)積,例如在二維空間中使用多項(xiàng)式核函數(shù),,可以快速得到五維空間中映射結(jié)果的內(nèi)積(形式相同): 使用核函數(shù),,我們現(xiàn)在的分類(lèi)超平面變?yōu)椋?/span> 常見(jiàn)的核函數(shù)有多項(xiàng)式核,高斯核,,線(xiàn)性核: 7.4 Outliers對(duì)于這種偏離正常位置很遠(yuǎn)的數(shù)據(jù)點(diǎn),,我們稱(chēng)之為outlier ,在我們?cè)瓉?lái)的 SVM 模型里,,outlier 的存在有可能造成很大的影響: 用黑圈圈起來(lái)的那個(gè)藍(lán)點(diǎn)是一個(gè)outlier ,,它偏離了自己原本所應(yīng)該在的那個(gè)半空間,如果直接忽略掉它的話(huà),,原來(lái)的分隔超平面還是挺好的,,但是由于這個(gè) outlier 的出現(xiàn),導(dǎo)致分隔超平面不得不被擠歪了,,變成途中黑色虛線(xiàn)所示(這只是一個(gè)示意圖,,并沒(méi)有嚴(yán)格計(jì)算精確坐標(biāo)),同時(shí)分類(lèi)間隔也相應(yīng)變小了,。當(dāng)然,,更嚴(yán)重的情況是,如果這個(gè) outlier 再往右上移動(dòng)一些距離的話(huà),,我們將無(wú)法構(gòu)造出能將數(shù)據(jù)分開(kāi)的超平面來(lái),。 為了處理這種情況,SVM 允許數(shù)據(jù)點(diǎn)在一定程度上偏離一下超平面,。例如上圖中,,黑色實(shí)線(xiàn)所對(duì)應(yīng)的距離,就是該 outlier 偏離的距離,,如果把它移動(dòng)回來(lái),,就剛好落在原來(lái)的超平面上,而不會(huì)使得超平面發(fā)生變形了,。具體來(lái)說(shuō),,原來(lái)的約束條件變?yōu)椋?/span> 而目標(biāo)函數(shù)變?yōu)椋?/span> 其中 C 是一個(gè)參數(shù),我們可以認(rèn)為是對(duì)outlier的容忍程度,,如果C越大,,我們對(duì)outliers的容忍程度越小,,反之越大。 完整的形式如下: 7.5 SVM的損失函數(shù)SVM的損失函數(shù)被稱(chēng)為合頁(yè)損失函數(shù),,如下圖: 當(dāng)樣本被正確分類(lèi)且函數(shù)間隔大于1時(shí),,合頁(yè)損失才是0,否則,,就會(huì)產(chǎn)生一定的損失,。 7.6 LR和SVM的區(qū)別總結(jié)了幾點(diǎn)LR與SVM的區(qū)別,和大家分享: 8,、樸素貝葉斯樸素貝葉斯是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的分類(lèi)方法,。 8.1 貝葉斯定理貝葉斯定理是關(guān)于隨機(jī)事件A和B的條件概率的定理,形式如下: 8.2 樸素貝葉斯分類(lèi)樸素貝葉斯分類(lèi)的基本思想是:給出待分類(lèi)項(xiàng),,求解在此項(xiàng)出現(xiàn)的條件下其他各個(gè)類(lèi)別的出現(xiàn)的概率,,哪個(gè)概率較大就認(rèn)為待分類(lèi)項(xiàng)屬于哪個(gè)類(lèi)別,用貝葉斯定理表示為(這里的上標(biāo)表示一維特征): 分母對(duì)于所有的c都是相同的,,因此可以省去,,故有: 我們要做的就是統(tǒng)計(jì)對(duì)每一個(gè)類(lèi)別來(lái)說(shuō),每一維特征每個(gè)特征出現(xiàn)的頻率,。頻率有可能出現(xiàn)0的情況,,我們需要進(jìn)行*拉普拉斯平滑操作。 拉普拉斯平滑:就是對(duì)每類(lèi)別下所有劃分的計(jì)數(shù)加1,,這樣如果訓(xùn)練樣本集數(shù)量充分大時(shí),,并不會(huì)對(duì)結(jié)果產(chǎn)生影響,并且解決了頻率為0的尷尬局面,。 9,、決策樹(shù)方法決策樹(shù)(Decision Tree)是數(shù)據(jù)挖掘中一種基本的分類(lèi)和回歸方法,它呈樹(shù)形結(jié)構(gòu),,在分類(lèi)問(wèn)題中,,表示基于特征對(duì)實(shí)例進(jìn)行分類(lèi)的過(guò)程,可以認(rèn)為是if?then規(guī)則的集合,,也可認(rèn)為是定義在特征空間與類(lèi)空間上的條件概率分布,。下圖是一個(gè)簡(jiǎn)單的決策樹(shù)示例: 決策樹(shù)模型的主要優(yōu)點(diǎn)是模型具有可讀性,分類(lèi)速度快,。在學(xué)習(xí)時(shí),,利用訓(xùn)練數(shù)據(jù),根據(jù)損失函數(shù)最小化原則建立決策樹(shù)模型,;而在預(yù)測(cè)時(shí),,對(duì)新的數(shù)據(jù),利用決策樹(shù)模型進(jìn)行分類(lèi),。主要的決策樹(shù)算法有ID3算法,、C4.5算法和CART算法。 一個(gè)決策樹(shù)的學(xué)習(xí)過(guò)程包括三個(gè)步驟:特征選擇,、決策樹(shù)的生成以及決策樹(shù)的修剪,。 9.1 特征選擇熵:在信息論與概率統(tǒng)計(jì)中,熵表示隨機(jī)變量不確定性的度量,。設(shè)X是一個(gè)取有限個(gè)值得離散隨機(jī)變量,,其概率分布為: 則隨機(jī)變量X的熵定義為: 條件熵H(Y|X)表示在已知隨機(jī)變量X的條件下隨機(jī)變量Y的不確定性: 信息增益 信息增益表示得知特征X的信息而使得類(lèi)Y的信息的不確定性減少的程度。信息增益大的特征具有更強(qiáng)的分類(lèi)能力,。特征A對(duì)訓(xùn)練數(shù)據(jù)集D的信息增益g(D,A),,定義為集合D的經(jīng)驗(yàn)熵H(D)與特征A給定條件下D的經(jīng)驗(yàn)條件熵H(D|A)之差,即: 一般地,,熵H(Y)與條件熵H(Y|X)之差稱(chēng)為互信息,。決策樹(shù)學(xué)習(xí)中的信息增益等價(jià)于訓(xùn)練數(shù)據(jù)集中類(lèi)與特征的互信息。 設(shè)訓(xùn)練數(shù)據(jù)集為D,,|D|表示其樣本容量,,即樣本個(gè)數(shù)。設(shè)有K 信息增益比 以信息增益作為劃分訓(xùn)練數(shù)據(jù)集的特征,存在偏向于選擇取值較多的特征的問(wèn)題,。使用信息增益比可以對(duì)這一問(wèn)題進(jìn)行校正,。 基尼系數(shù) 若樣本集合D根據(jù)特征A是否取某一可能值a被分割成D1和D2 則在特征A的條件下,,集合D的基尼指數(shù)定義為: 基尼系數(shù)Gini(D)表示集合D的不確定性,表示經(jīng)A=a分割后集合D的不確定性,?;嵯禂?shù)越大,樣本集合的不確定性越大,,與熵類(lèi)似,。 9.2 決策樹(shù)的生成ID3算法 具體的算法步驟如下圖: C4.5 CART 對(duì)分類(lèi)樹(shù)用基尼系數(shù)(Gini index)最小化準(zhǔn)則,進(jìn)行特征選擇,,生成二叉樹(shù),,其具體步驟如下: 接下來(lái)具體說(shuō)說(shuō)回歸樹(shù)是如何進(jìn)行特征選擇生成二叉回歸樹(shù)的。 9.3決策樹(shù)剪枝剪枝 10,、集成學(xué)習(xí)方法集成學(xué)習(xí)的主要思想是利用一定的手段學(xué)習(xí)出多個(gè)分類(lèi)器,而且這多個(gè)分類(lèi)器要求是弱分類(lèi)器,,然后將多個(gè)分類(lèi)器進(jìn)行組合公共預(yù)測(cè),。核心思想就是如何訓(xùn)練處多個(gè)弱分類(lèi)器以及如何將這些弱分類(lèi)器進(jìn)行組合。關(guān)于集成學(xué)習(xí),,大致可以分為三類(lèi):Bagging,、Boosting和Stacking。 本章我們只介紹集成學(xué)習(xí)方法的基本思想,,而具體的實(shí)現(xiàn)方法大家可以根據(jù)鏈接自行學(xué)習(xí),。 10.1 BaggingBagging即套袋法,其算法過(guò)程如下: 1、從原始樣本集中抽取訓(xùn)練集.每輪從原始樣本集中使用Bootstraping的方法抽取n個(gè)訓(xùn)練樣本(在訓(xùn)練集中,,有些樣本可能被多次抽取到,,而有些樣本可能一次都沒(méi)有被抽中).共進(jìn)行k輪抽取,得到k個(gè)訓(xùn)練集.(k個(gè)訓(xùn)練集相互獨(dú)立) 我們常見(jiàn)的Bagging算法是隨機(jī)森林算法,關(guān)于隨機(jī)森林算法的細(xì)節(jié),,可以參考博客:https://www.jianshu.com/p/8f99592658f2 10.2 BoostingBoosting是一族可將弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的算法,。關(guān)于Boosting的兩個(gè)核心問(wèn)題: 我們常見(jiàn)的Boosting算法有AdaBoost,梯度提升決策樹(shù)GBDT,,XgBoost以及LightGBM,。大家可以根據(jù)下面的參考資料進(jìn)行學(xué)習(xí): AdaBoost: https://www.jianshu.com/p/f2017cc696e6 https://www.jianshu.com/p/c32af083be5b https:///pdf/1603.02754v1.pdf https://blog.csdn.net/github_38414650/article/details/76061893 LightGBM 中文文檔:http://lightgbm./cn/latest/index.html 10.3 Bagging與Boosting的異同總結(jié)了以下四點(diǎn)不同: 樣本選擇 樣例權(quán)重 預(yù)測(cè)函數(shù) 并行計(jì)算 10.4 Stackingstacking 就是當(dāng)用初始訓(xùn)練數(shù)據(jù)學(xué)習(xí)出若干個(gè)基學(xué)習(xí)器后,將這幾個(gè)學(xué)習(xí)器的預(yù)測(cè)結(jié)果作為新的訓(xùn)練集,,來(lái)學(xué)習(xí)一個(gè)新的學(xué)習(xí)器,。 具體的原理以及python的實(shí)現(xiàn)例子可以參考文章:https://www.jianshu.com/p/3d2bd58908d0 11、總結(jié)一下機(jī)器學(xué)習(xí)中的損失函數(shù)11.1 0-1損失函數(shù)0-1損失是指,預(yù)測(cè)值和目標(biāo)值不相等為1,,否則為0: 11.2 絕對(duì)值損失函數(shù)絕對(duì)值損失函數(shù)為: 11.3 log對(duì)數(shù)損失函數(shù)邏輯回歸的損失函數(shù)就是對(duì)數(shù)損失函數(shù),,log損失函數(shù)的標(biāo)準(zhǔn)形式: 11.4 平方損失函數(shù)回歸問(wèn)題中經(jīng)常使用平方損失函數(shù): 11.5 指數(shù)損失函數(shù)AdaBoost就是一指數(shù)損失函數(shù)為損失函數(shù)的。 指數(shù)損失函數(shù)的標(biāo)準(zhǔn)形式: 11.6 Hinge損失函數(shù)SVM中使用的是Hinge損失函數(shù): 參考資料:1,、線(xiàn)性回歸原理和實(shí)現(xiàn)基本認(rèn)識(shí): https://blog.csdn.net/lisi1129/article/details/68925799 https://www.cnblogs.com/pinard/p/5970503.html https://www.jianshu.com/p/2f60e672d4f0 http://blog./?page_id=683 https://blog.csdn.net/lz_peter/article/details/79614556 https://www.jianshu.com/p/8c4a3ef74589 https://www.jianshu.com/p/8f99592658f2 https:///pdf/1603.02754v1.pdf http://lightgbm./cn/latest/index.html 丘老師手把手教你用Python實(shí)踐深度學(xué)習(xí) 原價(jià)799,,限時(shí)特惠 最后幾天活動(dòng)價(jià) 只要399,! 對(duì)! 你沒(méi)有聽(tīng)錯(cuò),! 399,! 掃描下圖二維碼即可學(xué)習(xí) |
|