機(jī)器學(xué)習(xí)是做NLP和計(jì)算機(jī)視覺這類應(yīng)用算法的基礎(chǔ),雖然現(xiàn)在深度學(xué)習(xí)模型大行其道语淘,但是懂一些傳統(tǒng)算法的原理和它們之間的區(qū)別還是很有必要的诲宇。可以幫助我們做一些模型選擇惶翻。本篇博文就總結(jié)一下各種機(jī)器學(xué)習(xí)算法的特點(diǎn)和應(yīng)用場(chǎng)景姑蓝。本文是筆者結(jié)合自身面試中遇到的問題和總結(jié)網(wǎng)絡(luò)上的資源得到的,所有引用已給出鏈接维贺,如侵刪它掂。
機(jī)器學(xué)習(xí)
SVM與LR的區(qū)別
從模型解決問題的方式來看
Linear SVM直觀上是trade-off兩個(gè)量
a large margin,就是兩類之間可以畫多寬的gap 溯泣;不妨說是正樣本應(yīng)該在分界平面向左gap/2(稱正分界)虐秋,負(fù)樣本應(yīng)該在分解平面向右gap/2(稱負(fù)分界)
L1 error penalty,對(duì)所有不滿足上述條件的點(diǎn)做L1 penalty
給定一個(gè)數(shù)據(jù)集垃沦,一旦完成Linear SVM的求解客给,所有數(shù)據(jù)點(diǎn)可以被歸成兩類
一類是落在對(duì)應(yīng)分界平面外并被正確分類的點(diǎn),比如落在正分界左側(cè)的正樣本或落在負(fù)分界右側(cè)的負(fù)樣本
第二類是落在gap里或被錯(cuò)誤分類的點(diǎn)肢簿。
假設(shè)一個(gè)數(shù)據(jù)集已經(jīng)被Linear SVM求解靶剑,那么往這個(gè)數(shù)據(jù)集里面增加或者刪除更多的一類點(diǎn)并不會(huì)改變重新求解的Linear SVM平面。不受數(shù)據(jù)分布的影響池充。
求解LR模型過程中桩引,每一個(gè)數(shù)據(jù)點(diǎn)對(duì)分類平面都是有影響的,它的影響力遠(yuǎn)離它到分類平面的距離指數(shù)遞減收夸。換句話說坑匠,LR的解是受數(shù)據(jù)本身分布影響的。在實(shí)際應(yīng)用中卧惜,如果數(shù)據(jù)維度很高厘灼,LR模型都會(huì)配合參數(shù)的L1 regularization夹纫。
兩者的區(qū)別
兩個(gè)模型對(duì)數(shù)據(jù)和參數(shù)的敏感程度不同,Linear SVM比較依賴penalty的系數(shù)和數(shù)據(jù)表達(dá)空間的測(cè)度设凹,而(帶正則項(xiàng)的)LR比較依賴對(duì)參數(shù)做L1 regularization的系數(shù)舰讹。但是由于他們或多或少都是線性分類器,所以實(shí)際上對(duì)低維度數(shù)據(jù)overfitting的能力都比較有限闪朱,相比之下對(duì)高維度數(shù)據(jù)月匣,LR的表現(xiàn)會(huì)更加穩(wěn)定,為什么呢监透?因?yàn)長(zhǎng)inear SVM在計(jì)算margin有多“寬”的時(shí)候是依賴數(shù)據(jù)表達(dá)上的距離測(cè)度的桶错,換句話說如果這個(gè)測(cè)度不好(badly scaled,這種情況在高維數(shù)據(jù)尤為顯著)胀蛮,所求得的所謂Large margin就沒有意義了院刁,這個(gè)問題即使換用kernel trick(比如用Gaussian kernel)也無法完全避免。所以使用Linear SVM之前一般都需要先對(duì)數(shù)據(jù)做normalization粪狼,而求解LR(without regularization)時(shí)則不需要或者結(jié)果不敏感退腥。
Linear SVM和LR都是線性分類器
Linear SVM不直接依賴數(shù)據(jù)分布,分類平面不受一類點(diǎn)影響再榄;LR則受所有數(shù)據(jù)點(diǎn)的影響狡刘,如果數(shù)據(jù)不同類別strongly unbalance一般需要先對(duì)數(shù)據(jù)做balancing。
Linear SVM依賴數(shù)據(jù)表達(dá)的距離測(cè)度困鸥,所以需要對(duì)數(shù)據(jù)先做normalization嗅蔬;LR不受其影響
Linear SVM依賴penalty的系數(shù),實(shí)驗(yàn)中需要做validation
Linear SVM和LR的performance都會(huì)收到outlier的影響疾就,其敏感程度而言澜术,誰更好很難下明確結(jié)論。
balance的方法
調(diào)整正猬腰、負(fù)樣本在求cost時(shí)的權(quán)重鸟废,比如按比例加大正樣本cost的權(quán)重。然而deep learning的訓(xùn)練過程是on-line的因此你需要按照batch中正姑荷、負(fù)樣本的比例調(diào)整盒延。
做訓(xùn)練樣本選取:如hard negative mining鼠冕,只用負(fù)樣本中的一部分添寺。
做訓(xùn)練樣本選取:如通過data augmentation擴(kuò)大正樣本數(shù)量懈费。
過擬合方面
LR容易欠擬合畦贸,準(zhǔn)確度低。
SVM不太容易過擬合:松弛因子+損失函數(shù)形式
注意SVM的求解方法叫拉格朗日乘子法楞捂,而對(duì)于均方誤差的優(yōu)化方法是最小二乘法薄坏。
方法的選擇
在Andrew NG的課里講到過:
如果Feature的數(shù)量很大,跟樣本數(shù)量差不多寨闹,這時(shí)候選用LR或者是Linear Kernel的SVM
如果Feature的數(shù)量比較小胶坠,樣本數(shù)量一般,不算大也不算小繁堡,選用SVM+Gaussian Kernel
如果Feature的數(shù)量比較小沈善,而樣本數(shù)量很多,需要手工添加一些feature變成第一種情況
當(dāng)你的數(shù)據(jù)非常非常非常非常非常大然后完全跑不動(dòng)SVM的時(shí)候椭蹄,跑LR闻牡。SVM適合于小樣本學(xué)習(xí)。多大算是非常非常非常非常非常非常大绳矩? 比如幾個(gè)G罩润,幾萬維特征,就勉強(qiáng)算大吧...而實(shí)際問題上幾萬個(gè)參數(shù)實(shí)在完全不算個(gè)事兒翼馆,太常見了割以。隨隨便便就得上spark。讀一遍數(shù)據(jù)就老半天应媚,一天能訓(xùn)練出來的模型就叫高效了严沥。所以在新時(shí)代,LR其實(shí)反而比以前用的多了=. =
應(yīng)用場(chǎng)景方面不同
擬合程度中姜,樣本量消玄,
距離測(cè)度,數(shù)據(jù)balance
模型簡(jiǎn)單易解釋
如果數(shù)據(jù)特征維度高丢胚,svm要使用核函數(shù)來求解
Note:拉格朗日對(duì)偶沒有改變最優(yōu)解翩瓜,但改變了算法復(fù)雜度:原問題—樣本維度;對(duì)偶問題–樣本數(shù)量嗜桌。所以 線性分類&&樣本維度<樣本數(shù)量:原問題求解(liblinear默認(rèn))奥溺; 非線性–升維—一般導(dǎo)致 樣本維度>樣本數(shù)量:對(duì)偶問題求解
SVM適合處理什么樣的數(shù)據(jù)?
高維稀疏骨宠,樣本少浮定。【參數(shù)只與支持向量有關(guān)层亿,數(shù)量少桦卒,所以需要的樣本少,由于參數(shù)跟維度沒有關(guān)系匿又,所以可以處理高維問題】
機(jī)器學(xué)習(xí)常見算法總結(jié)
機(jī)器學(xué)習(xí)常見算法個(gè)人總結(jié)(面試用)
樸素貝葉斯
樸素貝葉斯的優(yōu)點(diǎn):
對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好方灾,適合多分類任務(wù),適合增量式訓(xùn)練。
缺點(diǎn):
對(duì)輸入數(shù)據(jù)的表達(dá)形式很敏感(離散裕偿、連續(xù)洞慎,值極大極小之類的)
線性回歸
線性回歸試圖學(xué)得一個(gè)線性模型以盡可能準(zhǔn)確地預(yù)測(cè)實(shí)值輸出標(biāo)記。均方誤差是回歸任務(wù)中最常用的性能度量嘿棘,基于均方誤差最小化來進(jìn)行模型求解的方法成為最小二乘法劲腿。在線性回歸中,最小二乘法就是試圖找到一條直線鸟妙,使得所有樣本到直線上的歐式距離之和最小焦人。這個(gè)想法和分類問題是正好相反的,分類問題是找到一個(gè)分界面離所有樣本盡可能遠(yuǎn)重父。
優(yōu)化方法
當(dāng)x矩陣是列滿秩的時(shí)候花椭,可以用最小二乘法,但是求矩陣的逆比較慢
enter description here
梯度下降法房午,以最大似然估計(jì)的結(jié)果對(duì)權(quán)值求梯度矿辽,sigmoid函數(shù)也是如此
enter description here
均方無法的概率解釋
假設(shè)根據(jù)特征的預(yù)測(cè)結(jié)果與實(shí)際結(jié)果有誤差∈ (i) ,那么預(yù)測(cè)結(jié)果θ T x (i) 和真實(shí)結(jié)果y (i) 滿足下
式:
enter description here
一般來講,誤差滿足平均值為 0 的高斯分布,也就是正態(tài)分布。那么 x 和 y 的條件概率也就
是
enter description here
用條件概率最大似然估計(jì)法得到:
enter description here
LR回歸
enter description here
回歸用來分類 0/1 問題,也就是預(yù)測(cè)結(jié)果屬于 0 或者 1 的二值分類問題
enter description here
仍然求的是最大似然估計(jì),然后求導(dǎo),得到迭代公式結(jié)果為歪沃,梯度下降法:
enter description here
優(yōu)化問題的求解方法
大部分的機(jī)器學(xué)習(xí)算法的本質(zhì)都是建立優(yōu)化模型嗦锐,通過最優(yōu)化方法對(duì)目標(biāo)函數(shù)(或損失函數(shù))進(jìn)行優(yōu)化,從而訓(xùn)練出最好的模型沪曙。常見的最優(yōu)化方法有梯度下降法奕污、牛頓法和擬牛頓法、共軛梯度法等等液走。
梯度下降法
優(yōu)化思想
當(dāng)目標(biāo)函數(shù)是凸函數(shù)時(shí)碳默,梯度下降法的解是全局解。一般情況下缘眶,其解不保證是全局最優(yōu)解嘱根,梯度下降法的速度也未必是最快的。梯度下降法的優(yōu)化思想是用當(dāng)前位置負(fù)梯度方向作為搜索方向巷懈,因?yàn)樵摲较驗(yàn)楫?dāng)前位置的最快下降方向该抒,所以也被稱為是”最速下降法“。最速下降法越接近目標(biāo)值顶燕,步長(zhǎng)越小凑保,前進(jìn)越慢。
缺點(diǎn)
梯度下降法的最大問題就是會(huì)陷入局部最優(yōu)涌攻,靠近極小值時(shí)收斂速度減慢欧引。
批量梯度下降法
最小化所有訓(xùn)練樣本的損失函數(shù),使得最終求解的是全局的最優(yōu)解恳谎,即求解的參數(shù)是使得風(fēng)險(xiǎn)函數(shù)最小芝此,但是對(duì)于大規(guī)模樣本問題效率低下。
隨機(jī)梯度下降法
最小化每條樣本的損失函數(shù),雖然不是每次迭代得到的損失函數(shù)都向著全局最優(yōu)方向婚苹, 但是大的整體的方向是向全局最優(yōu)解的岸更,最終的結(jié)果往往是在全局最優(yōu)解附近,適用于大規(guī)模訓(xùn)練樣本情況租副。
隨機(jī)梯度下降是通過每個(gè)樣本來迭代更新一次坐慰,如果樣本量很大的情況(例如幾十萬),那么可能只用其中幾萬條或者幾千條的樣本用僧,就已經(jīng)將theta迭代到最優(yōu)解了,對(duì)比上面的批量梯度下降赞咙,迭代一次需要用到十幾萬訓(xùn)練樣本责循,一次迭代不可能最優(yōu),如果迭代10次的話就需要遍歷訓(xùn)練樣本10次攀操。但是撵割,SGD伴隨的一個(gè)問題是噪音較BGD要多粉怕,使得SGD并不是每次迭代都向著整體最優(yōu)化方向。
牛頓法
牛頓法是一種在實(shí)數(shù)域和復(fù)數(shù)域上近似求解方程的方法。方法使用函數(shù)f (x)的泰勒級(jí)數(shù)的前面幾項(xiàng)來尋找方程f (x) = 0的根梢褐。牛頓法最大的特點(diǎn)就在于它的收斂速度很快。
迭代公式
牛頓法比梯度下降法快
牛頓法是二階收斂饼酿,梯度下降是一階收斂运准,所以牛頓法就更快。如果更通俗地說的話碰凶,比如你想找一條最短的路徑走到一個(gè)盆地的最底部暮芭,梯度下降法每次只從你當(dāng)前所處位置選一個(gè)坡度最大的方向走一步,牛頓法在選擇方向時(shí)欲低,不僅會(huì)考慮坡度是否夠大辕宏,還會(huì)考慮你走了一步之后,坡度是否會(huì)變得更大砾莱。所以瑞筐,可以說牛頓法比梯度下降法看得更遠(yuǎn)一點(diǎn),能更快地走到最底部腊瑟。
但是牛頓法要算hessian矩陣的逆聚假,比較費(fèi)時(shí)間。
擬牛頓法
擬牛頓法的本質(zhì)思想是改善牛頓法每次需要求解復(fù)雜的Hessian矩陣的逆矩陣的缺陷扫步,它使用正定矩陣來近似Hessian矩陣的逆魔策,從而簡(jiǎn)化了運(yùn)算的復(fù)雜度。擬牛頓法和最速下降法一樣只要求每一步迭代時(shí)知道目標(biāo)函數(shù)的梯度河胎。通過測(cè)量梯度的變化闯袒,構(gòu)造一個(gè)目標(biāo)函數(shù)的模型使之足以產(chǎn)生超線性收斂性。這類方法大大優(yōu)于最速下降法,尤其對(duì)于困難的問題政敢。另外其徙,因?yàn)閿M牛頓法不需要二階導(dǎo)數(shù)的信息,所以有時(shí)比牛頓法更為有效喷户。
拉格朗日法
拉格朗日乘子法主要用于解決約束優(yōu)化問題唾那,它的基本思想就是通過引入拉格朗日乘子來將含有n個(gè)變量和k個(gè)約束條件的約束優(yōu)化問題轉(zhuǎn)化為含有(n+k)個(gè)變量的無約束優(yōu)化問題。拉格朗日乘子背后的數(shù)學(xué)意義是其為約束方程梯度線性組合中每個(gè)向量的系數(shù)褪尝。
通過引入拉格朗日乘子建立極值條件闹获,對(duì)n個(gè)變量分別求偏導(dǎo)對(duì)應(yīng)了n個(gè)方程,然后加上k個(gè)約束條件(對(duì)應(yīng)k個(gè)拉格朗日乘子)一起構(gòu)成包含了(n+k)變量的(n+k)個(gè)方程的方程組問題河哑,這樣就能根據(jù)求方程組的方法對(duì)其進(jìn)行求解避诽。
機(jī)器學(xué)習(xí)算法選擇
隨機(jī)森林平均來說最強(qiáng),但也只在9.9%的數(shù)據(jù)集上拿到了第一璃谨,優(yōu)點(diǎn)是鮮有短板沙庐。SVM的平均水平緊隨其后,在10.7%的數(shù)據(jù)集上拿到第一佳吞。神經(jīng)網(wǎng)絡(luò)(13.2%)和boosting(~9%)表現(xiàn)不錯(cuò)拱雏。數(shù)據(jù)維度越高,隨機(jī)森林就比AdaBoost強(qiáng)越多底扳,但是整體不及SVM2铸抑。數(shù)據(jù)量越大,神經(jīng)網(wǎng)絡(luò)就越強(qiáng)花盐。
貝葉斯
是相對(duì)容易理解的一個(gè)模型羡滑,至今依然被垃圾郵件過濾器使用。
K近鄰
典型的例子是KNN算芯,它的思路就是——對(duì)于待判斷的點(diǎn)柒昏,找到離它最近的幾個(gè)數(shù)據(jù)點(diǎn),根據(jù)它們的類型決定待判斷點(diǎn)的類型熙揍。
它的特點(diǎn)是完全跟著數(shù)據(jù)走职祷,沒有數(shù)學(xué)模型可言。
三要素:
k值的選擇
距離的度量(常見的距離度量有歐式距離届囚,馬氏距離等)
分類決策規(guī)則 (多數(shù)表決規(guī)則)
k值的選擇
k值越小表明模型越復(fù)雜有梆,更加容易過擬合
但是k值越大,模型越簡(jiǎn)單意系,如果k=N的時(shí)候就表明無論什么點(diǎn)都是訓(xùn)練集中類別最多的那個(gè)類
所以一般k會(huì)取一個(gè)較小的值泥耀,然后用過交叉驗(yàn)證來確定
這里所謂的交叉驗(yàn)證就是將樣本劃分一部分出來為預(yù)測(cè)樣本,比如95%訓(xùn)練蛔添,5%預(yù)測(cè)痰催,然后k分別取1兜辞,2,3夸溶,4逸吵,5之類的,進(jìn)行預(yù)測(cè)缝裁,計(jì)算最后的分類誤差扫皱,選擇誤差最小的k
分類決策規(guī)則
找到最近的k個(gè)實(shí)例之后,可以計(jì)算平均值作為預(yù)測(cè)值捷绑,也可以給這k個(gè)實(shí)例加上一個(gè)權(quán)重再求平均值韩脑,這個(gè)權(quán)重與度量距離成反比(越近權(quán)重越大)
優(yōu)缺點(diǎn):
優(yōu)點(diǎn)
思想簡(jiǎn)單
可用于非線性分類
訓(xùn)練時(shí)間復(fù)雜度為O(n)
準(zhǔn)確度高,對(duì)outlier不敏感
缺點(diǎn)
計(jì)算量大
樣本不平衡問題不適用
需要大量的內(nèi)存
KD樹
KD樹是一個(gè)二叉樹胎食,表示對(duì)K維空間的一個(gè)劃分扰才,可以進(jìn)行快速檢索
構(gòu)造KD樹
在k維的空間上循環(huán)找子區(qū)域的中位數(shù)進(jìn)行劃分的過程。
假設(shè)現(xiàn)在有K維空間的數(shù)據(jù)集: $T={x_1,x_2,x_3,…x_n}$, $xi={a_1,a_2,a_3..a_k}$
首先構(gòu)造根節(jié)點(diǎn)厕怜,以坐標(biāo)$a_1$的中位數(shù)b為切分點(diǎn),將根結(jié)點(diǎn)對(duì)應(yīng)的矩形局域劃分為兩個(gè)區(qū)域蕾总,區(qū)域1中$a_1 < b$,區(qū)域2中$a_1>b$
構(gòu)造葉子節(jié)點(diǎn)粥航,分別以上面兩個(gè)區(qū)域中$a_2$的中位數(shù)作為切分點(diǎn),再次將他們兩兩劃分生百,作為深度1的葉子節(jié)點(diǎn)递雀,(如果a2=中位數(shù),則a2的實(shí)例落在切分面)
不斷重復(fù)2的操作蚀浆,深度為j的葉子節(jié)點(diǎn)劃分的時(shí)候缀程,索取的$a_i$ 的$i=j % k+1$,直到兩個(gè)子區(qū)域沒有實(shí)例時(shí)停止
KD樹的搜索
首先從根節(jié)點(diǎn)開始遞歸往下找到包含x的葉子節(jié)點(diǎn)市俊,每一層都是找對(duì)應(yīng)的xi
將這個(gè)葉子節(jié)點(diǎn)認(rèn)為是當(dāng)前的“近似最近點(diǎn)”
遞歸向上回退杨凑,如果以x圓心,以“近似最近點(diǎn)”為半徑的球與根節(jié)點(diǎn)的另一半子區(qū)域邊界相交摆昧,則說明另一半子區(qū)域中存在與x更近的點(diǎn)撩满,則進(jìn)入另一個(gè)子區(qū)域中查找該點(diǎn)并且更新”近似最近點(diǎn)“
重復(fù)3的步驟,直到另一子區(qū)域與球體不相交或者退回根節(jié)點(diǎn)
最后更新的”近似最近點(diǎn)“與x真正的最近點(diǎn)
log(n)
決策樹
決策樹的特點(diǎn)是它總是在沿著特征做切分绅你。隨著層層遞進(jìn)伺帘,這個(gè)劃分會(huì)越來越細(xì)。
因?yàn)樗軌蛏汕逦幕谔卣?feature)選擇不同預(yù)測(cè)結(jié)果的樹狀結(jié)構(gòu)
隨機(jī)森林
器學(xué)習(xí)崗位面試問題匯總 之 集成學(xué)習(xí)
基本概念
天池離線賽 - 移動(dòng)推薦算法(四):基于LR, RF, GBDT等模型的預(yù)測(cè)
它首先隨機(jī)選取不同的特征(feature)和訓(xùn)練樣本(training sample)bagging忌锯,生成大量的決策樹伪嫁,然后綜合這些決策樹的結(jié)果來進(jìn)行最終的分類。
隨機(jī)森林在現(xiàn)實(shí)分析中被大量使用偶垮,它相對(duì)于決策樹张咳,在準(zhǔn)確性上有了很大的提升
適用場(chǎng)景:數(shù)據(jù)維度相對(duì)低(幾十維)帝洪,同時(shí)對(duì)準(zhǔn)確性有較高要求時(shí)。
參數(shù)調(diào)節(jié)
是一種基于決策樹基模型的集成學(xué)習(xí)方法晶伦,其核心思想是通過特征采樣來降低訓(xùn)練方差碟狞,提高集成泛化能力。
max_depth 屬于基學(xué)習(xí)器參數(shù)婚陪,它控制著每個(gè)決策樹的深度族沃,一般來說,決策樹越深泌参,模型擬合的偏差越小脆淹,但同時(shí)擬合的開銷也越大。一般地沽一,需要保證足夠的樹深度盖溺,但也不宜過大。
RF與傳統(tǒng)bagging的區(qū)別
(1)樣本采樣:RF有放回選取和整體樣本數(shù)目相同的樣本铣缠,一般bagging用的樣本<總體樣本數(shù)
(2)特征采樣:RF對(duì)特征進(jìn)行采樣烘嘱,BAGGING用全部特征
RF的優(yōu)點(diǎn)
(1)在數(shù)據(jù)集上表現(xiàn)良好,在當(dāng)先很多數(shù)據(jù)集上要優(yōu)于現(xiàn)有的很多算法
(2)可以并行蝗蛙,且不是對(duì)所有屬性進(jìn)行訓(xùn)練蝇庭,訓(xùn)練速度相對(duì)較快
(3)防止過擬合
(4)能夠處理高維特征,且不用做特征選擇捡硅,可以給出特征重要性的評(píng)分哮内,訓(xùn)練過程中,可以檢測(cè)到feature的相互影響
缺點(diǎn)
①樹越多壮韭,隨機(jī)森林的表現(xiàn)才會(huì)越穩(wěn)定北发。所以在實(shí)際使用隨機(jī)森林的時(shí)候需要注意如果樹不夠多的時(shí)候,可能會(huì)導(dǎo)致不穩(wěn)定的情況喷屋。
②不平衡數(shù)據(jù)集琳拨。分類結(jié)果會(huì)傾向于樣本多的類別,所以訓(xùn)練樣本中各類別的數(shù)據(jù)必須相同逼蒙。Breiman在實(shí)際實(shí)現(xiàn)該算法的時(shí)候有考慮到了這個(gè)問題从绘,采取了根據(jù)樣本類別比例對(duì)決策樹的判斷賦予不同權(quán)值的方法
RF的學(xué)習(xí)算法
ID3:離散
C4.5:連續(xù)
CART:離散或連續(xù)
GBDT
基本概念
GBDT(梯度迭代決策樹)是一種基于決策回歸樹的Boosting模型,其核心思想是將提升過程建立在對(duì)“之前殘差的負(fù)梯度表示”的回歸擬合上是牢,通過不斷的迭代實(shí)現(xiàn)降低偏差的目的僵井。
GBDT設(shè)置大量基學(xué)習(xí)器的目的是為了集成來降低偏差,所以 n_estimators (基決策器的個(gè)數(shù))一般會(huì)設(shè)置得大一些驳棱。
對(duì)于GBDT模型來說批什,其每個(gè)基學(xué)習(xí)器是一個(gè)弱學(xué)習(xí)器(欠擬合),決策樹的深度一般設(shè)置得比較小社搅,以此來降低方差(模型復(fù)雜度低)驻债,之后在經(jīng)過殘差逼近迭代來降低偏差乳规,從而形成強(qiáng)學(xué)習(xí)器。
GBDT與傳統(tǒng)Boosting(AdaBoost)的區(qū)別
Boosting算法合呐,但與傳統(tǒng)boosting有區(qū)別暮的、擬合上一步的殘差,傳統(tǒng)意義上說不能并行淌实,只能用CART回歸樹冻辩,降低偏差
迭代思路不同:傳統(tǒng)boosting對(duì)訓(xùn)練樣本進(jìn)行加權(quán),GBDT則是擬合殘差拆祈,下一棵樹沿殘差梯度下降的方向進(jìn)行擬合
GBDT正則化的方式
(1)同AdaBoost恨闪,通過步長(zhǎng)
(2)CART樹的剪枝
(3)子抽樣,不放回放坏,SGBT咙咽,可以實(shí)現(xiàn)一定程度上的并行
GBDT的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):(1)調(diào)參少的情況下,準(zhǔn)確率也高(SVM)
(2)靈活處理各種數(shù)據(jù)淤年,包括連續(xù)和離散钧敞,無需歸一化處理(LR)
(3)模型非線性變換多,特征不用經(jīng)過復(fù)雜處理即可表達(dá)復(fù)雜信息
(4)從一定程度上可以防止過擬合麸粮,小步而非大步擬合
缺點(diǎn):(1)一般來說傳統(tǒng)的GBDT只能串行犁享,但是也可以通過子采樣比例(0.5~0.8)實(shí)現(xiàn)某種意義上的并行,但一般這就不叫GBDT了豹休。
(2)對(duì)異常值敏感,但是可以采取一些健壯的損失函數(shù)緩解桨吊,如Huber./Quantile損失函數(shù)
GBDT預(yù)測(cè)時(shí)每一棵樹是否能并行威根?
可以,訓(xùn)練需串行视乐,預(yù)測(cè)可并行
GBDT和RF的區(qū)別與聯(lián)系
聯(lián)系:多棵樹進(jìn)行訓(xùn)練+多棵樹共同進(jìn)行預(yù)測(cè)
區(qū)別:(1)取樣方式
(2)預(yù)測(cè)時(shí)洛搀,RF多數(shù)投票,GBDT加權(quán)累加
(3)樣本的關(guān)系—>并行和串行
(4)學(xué)期器的種類佑淀,GBDT只能用CART回歸樹(因?yàn)橐?jì)算連續(xù)梯度)
(5)對(duì)異常值的敏感性
(6)通過減少方差/偏差提高性能
XGBOOST相比于GBDT有何不同留美?XGBOOST為什么快?XGBOOST如何支持并行伸刃?
(1)GBDT只能用CART回歸樹谎砾,而XGBOOST可以用CART樹(回歸/分類),還可以用用想LR之類的線性模型,相當(dāng)于加入L1捧颅、L2正則項(xiàng)的LR或線性回歸
(2)列抽樣景图,可以并行,不是樹粒度上的碉哑,是特征粒度上的挚币,block塊亮蒋,并行計(jì)算所有信息增益等信息
(3)可處理多種特征,且對(duì)缺失值也不用進(jìn)行處理
(4)GBDT在殘差梯度下降方向擬合妆毕,一階導(dǎo)慎玖;XGBOOST泰勒展開至二階導(dǎo)
(5)近似直方圖算法,高效生產(chǎn)候選分割點(diǎn)
(6)shrink笛粘,縮減趁怔,葉子節(jié)點(diǎn)同時(shí)乘,防止過擬合
(7)可以自己定義評(píng)價(jià)函數(shù)
(8)代價(jià)函數(shù)含正則化項(xiàng)闰蛔,防止過擬合
ababoost
daBoost的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):(1)容易理解痕钢、實(shí)現(xiàn)簡(jiǎn)單
(2)易編碼
(3)分類精度高
(4)可以使用各種回歸模型構(gòu)建基分類器,非常靈活
(5)作為二元分類器是序六,構(gòu)造簡(jiǎn)單任连、結(jié)果可理解、少參數(shù)
(6)相對(duì)來說例诀,不宜過擬合
缺點(diǎn):(1)只能串行
(2)對(duì)異常值敏感boosting對(duì)異常值敏感
集成學(xué)習(xí)與方差偏差
我覺得随抠,避免偏差的話,首先我們需要盡量選擇正確的模型繁涂,所謂“對(duì)癥下藥”拱她。我覺得有位同行把機(jī)器學(xué)習(xí)算法的使用比作醫(yī)生開藥方,是非常不錯(cuò)的比喻扔罪。我們要根據(jù)數(shù)據(jù)的分布和特點(diǎn)秉沼,選擇合適的算法。
其次矿酵,有了合適的算法唬复,我們還要慎重選擇數(shù)據(jù)集的大小。通常訓(xùn)練數(shù)據(jù)集越大越好全肮,但是當(dāng)大到數(shù)據(jù)集已經(jīng)對(duì)整體所有數(shù)據(jù)有了一定的代表性之后敞咧,再多的數(shù)據(jù)已經(jīng)不能提升模型的準(zhǔn)確性,反而帶來模型訓(xùn)練的計(jì)算量增加辜腺。但是休建,訓(xùn)練數(shù)據(jù)太少的話是一定不好的,這會(huì)帶來過擬合的問題评疗,過擬合就是模型復(fù)雜度太高测砂,方差很大,不同的數(shù)據(jù)集訓(xùn)練出來的模型變化非常大
偏差與方差
使用sklearn進(jìn)行集成學(xué)習(xí)——理論
機(jī)器學(xué)習(xí)中壤巷,有哪些特征選擇的工程方法邑彪?
為什么說bagging是減少variance,而boosting是減少bias?
從機(jī)制上講
為什么說bagging是減少variance胧华,而boosting是減少bias
若各子模型獨(dú)立寄症,則有$$Var(\frac{\sum X_i}{n})=\frac{Var(X_i)}{n}$$宙彪,此時(shí)可以顯著降低variance。若各子模型完全相同有巧,則$$Var(\frac{\sum X_i}{n})=Var(X_i)$$
释漆,此時(shí)不會(huì)降低variance。
Bagging 是 Bootstrap Aggregating 的簡(jiǎn)稱篮迎,意思就是再取樣 (Bootstrap) 然后在每個(gè)樣本上訓(xùn)練出來的模型取平均男图。
bagging的偏差
,所以從偏差上看沒有降低甜橱,但是由于各個(gè)子模型是單獨(dú)訓(xùn)練的逊笆,有一定的獨(dú)立性,所以方差降低比較多,提高泛化能力岂傲。特別是random forest這種方式难裆,不僅對(duì)樣本取樣,還有特征取樣镊掖。
boosting從優(yōu)化角度來看乃戈,是用forward-stagewise這種貪心法去最小化損失函數(shù),在這個(gè)過程中偏差是逐步減小的亩进,而由于各階段分類器之間相關(guān)性較強(qiáng)症虑,方差降低得少。
舉個(gè)例子
gbdt是boosting的方式归薛,它的決策樹的深度比較小谍憔,模型會(huì)欠擬合,剛開始偏差大主籍,后來就慢慢變小了韵卤。
為什么把特征組合之后還能提升
反正這些基本都是增強(qiáng)了特征的表達(dá)能力,或者說更容易線性可分吧
總體性問題
分類與回歸的區(qū)別
分類和回歸的區(qū)別在于輸出變量的類型崇猫。
定量輸出稱為回歸,或者說是連續(xù)變量預(yù)測(cè)需忿;
定性輸出稱為分類诅炉,或者說是離散變量預(yù)測(cè)。
生成模型與判別模型的區(qū)別
有監(jiān)督機(jī)器學(xué)習(xí)方法可以分為生成方法和判別方法(常見的生成方法有混合高斯模型屋厘、樸素貝葉斯法和隱形馬爾科夫模型等涕烧,常見的判別方法有SVM、LR等)汗洒,生成方法學(xué)習(xí)出的是生成模型议纯,判別方法學(xué)習(xí)出的是判別模型。
監(jiān)督學(xué)習(xí)溢谤,預(yù)測(cè)時(shí)瞻凤,一般都是在求p(Y|X)生成模型: 從數(shù)據(jù)中學(xué)習(xí)聯(lián)合概率分布p(X,Y)憨攒,然后利用貝葉斯公式求:$$p(Y|X)=\frac{P(X,Y)}{\Sigma P(X,Y_{i} )} $$,比如說樸素貝葉斯
判別模型:直接學(xué)習(xí)P(Y|X)阀参, 它直觀輸入什么特征X肝集,就直接預(yù)測(cè)出最可能的Y; 典型的模型包括:LR, SVM,CRF,Boosting,Decision tree....
生成方法的特點(diǎn):生成方法可以還原聯(lián)合概率分布,而判別方法則不能蛛壳;生成方法的學(xué)習(xí)收斂速度更快杏瞻,即當(dāng)樣本容量增加的時(shí)候,學(xué)習(xí)的模型可以更快的收斂于真實(shí)的模型衙荐;當(dāng)存在隱變量時(shí)捞挥,仍可以用生成方法學(xué)習(xí),此時(shí)判別方法就不能用忧吟。
判別方法的特點(diǎn):判別方法直接學(xué)習(xí)的是條件概率或者決策函數(shù)砌函,直接面對(duì)預(yù)測(cè),往往學(xué)習(xí)的準(zhǔn)確率更高瀑罗;由于直接學(xué)習(xí)或者胸嘴,可以對(duì)數(shù)據(jù)進(jìn)行各種程度上的抽象、定義特征并使用特征斩祭,因此可以簡(jiǎn)化學(xué)習(xí)問題劣像。
精確率、召回率摧玫、F1 值耳奕、ROC、AUC 各自的優(yōu)缺點(diǎn)是什么诬像?
enter description here
精確率(Precision)為TP/(TP+FP)
召回率(Recall)為TP/(TP+FN)
F1值是精確率和召回率的調(diào)和均值屋群,即F1=2PR/(P+R)
ROC曲線(Receiver operating characteristic curve),ROC曲線其實(shí)是多個(gè)混淆矩陣的結(jié)果組合坏挠,如果在上述模型中我們沒有定好閾值芍躏,而是將模型預(yù)測(cè)結(jié)果從高到低排序,將每個(gè)概率值依次作為閾值降狠,那么就有多個(gè)混淆矩陣。對(duì)于每個(gè)混淆矩陣榜配,我們計(jì)算兩個(gè)指標(biāo)TPR(True positive rate)和FPR(False positive rate)蛋褥,TPR=TP/(TP+FN)=Recall临燃,TPR就是召回率,F(xiàn)PR=FP/(FP+TN)膜廊。
enter description here
在畫ROC曲線的過程中,若有一個(gè)閾值溃论,高于此閾值的均為壞人屎蜓,低于此閾值的均為好人,則認(rèn)為此模型已完美的區(qū)分開好壞用戶炬转。此時(shí)壞用戶的預(yù)測(cè)準(zhǔn)確率(TPR)為1扼劈,同時(shí)好用戶的預(yù)測(cè)錯(cuò)誤率(FPR)為0菲驴,ROC曲線經(jīng)過(0,1)點(diǎn)。AUC(Area Under Curve)的值為ROC曲線下面的面積先煎,若如上所述模型十分準(zhǔn)確薯蝎,則AUC為1谤绳。但現(xiàn)實(shí)生活中尤其是工業(yè)界不會(huì)有如此完美的模型缩筛,一般AUC均在0.5到1之間,AUC越高艺演,模型的區(qū)分能力越好
若AUC=0.5桐臊,即與上圖中紅線重合,表示模型的區(qū)分能力與隨機(jī)猜測(cè)沒有差別。
所以AUC表征的是模型的分類能力懒浮。
過擬合
如果一味的去提高訓(xùn)練數(shù)據(jù)的預(yù)測(cè)能力,所選模型的復(fù)雜度往往會(huì)很高次伶,這種現(xiàn)象稱為過擬合冠王。所表現(xiàn)的就是模型訓(xùn)練時(shí)候的誤差很小舌镶,但在測(cè)試的時(shí)候誤差很大餐胀。
產(chǎn)生的原因
因?yàn)閰?shù)太多,會(huì)導(dǎo)致我們的模型復(fù)雜度上升卖擅,容易過擬合
權(quán)值學(xué)習(xí)迭代次數(shù)足夠多(Overtraining),擬合了訓(xùn)練數(shù)據(jù)中的噪聲和訓(xùn)練樣例中沒有代表性的特征.
解決方法
交叉驗(yàn)證法
減少特征
正則化
權(quán)值衰減
驗(yàn)證數(shù)據(jù)
線性分類器與非線性分類器的區(qū)別以及優(yōu)劣
如果模型是參數(shù)的線性函數(shù)惩阶,并且存在線性分類面断楷,那么就是線性分類器私痹,否則不是紊遵。
常見的線性分類器有:LR,貝葉斯分類,單層感知機(jī)匀奏、線性回歸
常見的非線性分類器:決策樹娃善、RF瑞佩、GBDT炬丸、多層感知機(jī)
SVM兩種都有(看線性核還是高斯核)
線性分類器速度快蜒蕾、編程方便咪啡,但是可能擬合效果不會(huì)很好
非線性分類器編程復(fù)雜暮屡,但是效果擬合能力強(qiáng)
特征比數(shù)據(jù)量還大時(shí)褒纲,選擇什么樣的分類器外厂?
線性分類器,因?yàn)榫S度高的時(shí)候渐扮,數(shù)據(jù)一般在維度空間里面會(huì)比較稀疏墓律,很有可能線性可分
對(duì)于維度很高的特征幔亥,你是選擇線性還是非線性分類器帕棉?
理由同上
對(duì)于維度極低的特征香伴,你是選擇線性還是非線性分類器?
非線性分類器具帮,因?yàn)榈途S空間可能很多特征都跑到一起了低斋,導(dǎo)致線性不可分
樣本不均衡如何解決
主要三個(gè)方面膊畴,數(shù)據(jù)唇跨,模型和評(píng)估方法礁遵。
數(shù)據(jù)上重采樣和欠采樣,使之均衡唧龄;
模型上選對(duì)樣本不均衡問題不敏感的模型奸远,和算法集成技術(shù)懒叛,如決策樹薛窥,不能用KNN;
評(píng)估方法佩番,用查全率趟畏,查準(zhǔn)率之類
重采樣(resampling)技術(shù):
(1).隨機(jī)欠采樣
隨機(jī)欠采樣的目標(biāo)是通過隨機(jī)地消除占多數(shù)的類的樣本來平衡類分布滩租。
優(yōu)點(diǎn)
它可以提升運(yùn)行時(shí)間律想;并且當(dāng)訓(xùn)練數(shù)據(jù)集很大時(shí)蜘欲,可以通過減少樣本數(shù)量來解決存儲(chǔ)問題姥份。
缺點(diǎn)
它會(huì)丟棄對(duì)構(gòu)建規(guī)則分類器很重要的有價(jià)值的潛在信息。
被隨機(jī)欠采樣選取的樣本可能具有偏差展鸡。它不能準(zhǔn)確代表大多數(shù)莹弊。
(2).隨機(jī)過采樣(Random Over-Sampling)
過采樣(Over-Sampling)通過隨機(jī)復(fù)制少數(shù)類來增加其中的實(shí)例數(shù)量忍弛,從而可增加樣本中少數(shù)類的代表性。
優(yōu)點(diǎn)
與欠采樣不同蔗彤,這種方法不會(huì)帶來信息損失然遏。
表現(xiàn)優(yōu)于欠采樣吧彪。
缺點(diǎn)
由于復(fù)制少數(shù)類事件姨裸,它加大了過擬合的可能性啦扬。
(3). 信息性過采樣:合成少數(shù)類過采樣技術(shù)
直接復(fù)制少數(shù)類實(shí)例并將其添加到主數(shù)據(jù)集時(shí)扑毡。從少數(shù)類中把一個(gè)數(shù)據(jù)子集作為一個(gè)實(shí)例取走,接著創(chuàng)建相似的新合成的實(shí)例勋又。這些合成的實(shí)例接著被添加進(jìn)原來的數(shù)據(jù)集楔壤。新數(shù)據(jù)集被用作樣本以訓(xùn)練分類模型蹲嚣。
優(yōu)點(diǎn)
通過隨機(jī)采樣生成的合成樣本而非實(shí)例的副本祟牲,可以緩解過擬合的問題说贝。
不會(huì)損失有價(jià)值信息乡恕。
缺點(diǎn)
當(dāng)生成合成性實(shí)例時(shí)俯萎,SMOTE 并不會(huì)把來自其他類的相鄰實(shí)例考慮進(jìn)來夫啊。這導(dǎo)致了類重疊的增加涮母,并會(huì)引入額外的噪音。
作者:在河之簡(jiǎn)
鏈接:http://www.reibang.com/p/ace5051d0023
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有彤钟,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處跷叉。