常見面試之機(jī)器學(xué)習(xí)算法思想簡單梳理

前言:

找工作時(shí)(IT行業(yè))踢星,除了常見的軟件開發(fā)以外统刮,機(jī)器學(xué)習(xí)崗位也可以當(dāng)作是一個(gè)選擇,不少計(jì)算機(jī)方向的研究生都會(huì)接觸這個(gè)污抬,如果你的研究方向是機(jī)器學(xué)習(xí)/數(shù)據(jù)挖掘之類汞贸,且又對(duì)其非常感興趣的話,可以考慮考慮該崗位印机,畢竟在機(jī)器智能沒達(dá)到人類水平之前矢腻,機(jī)器學(xué)習(xí)可以作為一種重要手段,而隨著科技的不斷發(fā)展射赛,相信這方面的人才需求也會(huì)越來越大多柑。

縱觀IT行業(yè)的招聘崗位,機(jī)器學(xué)習(xí)之類的崗位還是挺少的楣责,國內(nèi)大點(diǎn)的公司里百度竣灌,阿里聂沙,騰訊,網(wǎng)易初嘹,搜狐及汉,華為(華為的崗位基本都是隨機(jī)分配,機(jī)器學(xué)習(xí)等崗位基本面向的是博士)等會(huì)有相關(guān)職位屯烦,另外一些國內(nèi)的中小型企業(yè)和外企也會(huì)招一小部分坷随。當(dāng)然了,其中大部分還是百度北京要人最多驻龟,上百人温眉。阿里的算法崗位很大一部分也是搞機(jī)器學(xué)習(xí)相關(guān)的。另外本人有幸簽約了網(wǎng)易杭州研究院的深度學(xué)習(xí)算法崗位翁狐,打算從事機(jī)器學(xué)習(xí)領(lǐng)域至少5年类溢。非常感謝小易收留了我!

下面是本人在找機(jī)器學(xué)習(xí)崗位工作時(shí)露懒,總結(jié)的常見機(jī)器學(xué)習(xí)算法(主要是一些常規(guī)分類器)大概流程和主要思想豌骏,希望對(duì)大家找機(jī)器學(xué)習(xí)崗位時(shí)有點(diǎn)幫助。實(shí)際上在面試過程中隐锭,懂這些算法的基本思想和大概流程是遠(yuǎn)遠(yuǎn)不夠的窃躲,那些面試官往往問的都是一些公司內(nèi)部業(yè)務(wù)中的課題,往往要求你不僅要懂得這些算法的理論過程钦睡,而且要非常熟悉怎樣使用它蒂窒,什么場合用它,算法的優(yōu)缺點(diǎn)荞怒,以及調(diào)參經(jīng)驗(yàn)等等洒琢。說白了,就是既要會(huì)點(diǎn)理論褐桌,也要會(huì)點(diǎn)應(yīng)用衰抑,既要有點(diǎn)深度,也要有點(diǎn)廣度荧嵌,否則運(yùn)氣不好的話很容易就被刷掉呛踊,因?yàn)槊總€(gè)面試官愛好不同。

  樸素貝葉斯:

有以下幾個(gè)地方需要注意:

1. 如果給出的特征向量長度可能不同啦撮,這是需要?dú)w一化為通長度的向量(這里以文本分類為例)谭网,比如說是句子單詞的話,則長度為整個(gè)詞匯量的長度赃春,對(duì)應(yīng)位置是該單詞出現(xiàn)的次數(shù)愉择。

2. 計(jì)算公式如下:

image

其中一項(xiàng)條件概率可以通過樸素貝葉斯條件獨(dú)立展開。要注意一點(diǎn)就是
image

的計(jì)算方法,而由樸素貝葉斯的前提假設(shè)可知锥涕,
image

=
image

衷戈,因此一般有兩種,一種是在類別為ci的那些樣本集中层坠,找到wj出現(xiàn)次數(shù)的總和殖妇,然后除以該樣本的總和;第二種方法是類別為ci的那些樣本集中窿春,找到wj出現(xiàn)次數(shù)的總和,然后除以該樣本中所有特征出現(xiàn)次數(shù)的總和采盒。

3. 如果
image

中的某一項(xiàng)為0旧乞,則其聯(lián)合概率的乘積也可能為0,即2中公式的分子為0磅氨,為了避免這種現(xiàn)象出現(xiàn)尺栖,一般情況下會(huì)將這一項(xiàng)初始化為1,當(dāng)然為了保證概率相等烦租,分母應(yīng)對(duì)應(yīng)初始化為2(這里因?yàn)槭?類延赌,所以加2,如果是k類就需要加k叉橱,術(shù)語上叫做laplace光滑, 分母加k的原因是使之滿足全概率公式)挫以。

樸素貝葉斯的優(yōu)點(diǎn):

對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好,適合多分類任務(wù)窃祝,適合增量式訓(xùn)練掐松。

缺點(diǎn)

對(duì)輸入數(shù)據(jù)的表達(dá)形式很敏感。

  決策樹:

決策樹中很重要的一點(diǎn)就是選擇一個(gè)屬性進(jìn)行分枝粪小,因此要注意一下信息增益的計(jì)算公式大磺,并深入理解它。

信息熵的計(jì)算公式如下:

image

其中的n代表有n個(gè)分類類別(比如假設(shè)是2類問題探膊,那么n=2)杠愧。分別計(jì)算這2類樣本在總樣本中出現(xiàn)的概率p1和p2,這樣就可以計(jì)算出未選中屬性分枝前的信息熵逞壁。

現(xiàn)在選中一個(gè)屬性xi用來進(jìn)行分枝流济,此時(shí)分枝規(guī)則是:如果xi=vx的話,將樣本分到樹的一個(gè)分支腌闯;如果不相等則進(jìn)入另一個(gè)分支袭灯。很顯然,分支中的樣本很有可能包括2個(gè)類別绑嘹,分別計(jì)算這2個(gè)分支的熵H1和H2,計(jì)算出分枝后的總信息熵H’=p1H1+p2H2.稽荧,則此時(shí)的信息增益ΔH=H-H’。以信息增益為原則,把所有的屬性都測試一邊姨丈,選擇一個(gè)使增益最大的屬性作為本次分枝屬性畅卓。

決策樹的優(yōu)點(diǎn):

計(jì)算量簡單,可解釋性強(qiáng)蟋恬,比較適合處理有缺失屬性值的樣本翁潘,能夠處理不相關(guān)的特征;

缺點(diǎn):

容易過擬合(后續(xù)出現(xiàn)了隨機(jī)森林歼争,減小了過擬合現(xiàn)象)拜马;

  Logistic回歸:

Logistic是用來分類的,是一種線性分類器沐绒,需要注意的地方有:

1. logistic函數(shù)表達(dá)式為:

image

其導(dǎo)數(shù)形式為:

image

2. logsitc回歸方法主要是用最大似然估計(jì)來學(xué)習(xí)的俩莽,所以單個(gè)樣本的后驗(yàn)概率為:

image

到整個(gè)樣本的后驗(yàn)概率:

image

其中:

image

通過對(duì)數(shù)進(jìn)一步化簡為:

image

3. 其實(shí)它的loss function為-l(θ),因此我們需使loss function最小乔遮,可采用梯度下降法得到扮超。梯度下降法公式為:

image
image

Logistic回歸優(yōu)點(diǎn):

1、實(shí)現(xiàn)簡單蹋肮;

2出刷、分類時(shí)計(jì)算量非常小,速度很快坯辩,存儲(chǔ)資源低馁龟;

缺點(diǎn):

1、容易欠擬合漆魔,一般準(zhǔn)確度不太高

2屁柏、只能處理兩分類問題(在此基礎(chǔ)上衍生出來的softmax可以用于多分類),且必須線性可分有送;

  線性回歸:

線性回歸才是真正用于回歸的淌喻,而不像logistic回歸是用于分類,其基本思想是用梯度下降法對(duì)最小二乘法形式的誤差函數(shù)進(jìn)行優(yōu)化雀摘,當(dāng)然也可以用normal equation直接求得參數(shù)的解裸删,結(jié)果為:

image

而在LWLR(局部加權(quán)線性回歸)中,參數(shù)的計(jì)算表達(dá)式為:

image

因?yàn)榇藭r(shí)優(yōu)化的是:

image

由此可見LWLR與LR不同阵赠,LWLR是一個(gè)非參數(shù)模型涯塔,因?yàn)槊看芜M(jìn)行回歸計(jì)算都要遍歷訓(xùn)練樣本至少一次。

線性回歸優(yōu)點(diǎn):

實(shí)現(xiàn)簡單清蚀,計(jì)算簡單匕荸;

缺點(diǎn):

不能擬合非線性數(shù)據(jù);

  KNN****算法:

KNN即最近鄰算法枷邪,其主要過程為:

1. 計(jì)算訓(xùn)練樣本和測試樣本中每個(gè)樣本點(diǎn)的距離(常見的距離度量有歐式距離榛搔,馬氏距離等);

2. 對(duì)上面所有的距離值進(jìn)行排序;

3. 選前k個(gè)最小距離的樣本践惑;

4. 根據(jù)這k個(gè)樣本的標(biāo)簽進(jìn)行投票腹泌,得到最后的分類類別;

如何選擇一個(gè)最佳的K值尔觉,這取決于數(shù)據(jù)凉袱。一般情況下,在分類時(shí)較大的K值能夠減小噪聲的影響侦铜。但會(huì)使類別之間的界限變得模糊专甩。一個(gè)較好的K值可通過各種啟發(fā)式技術(shù)來獲取,比如钉稍,交叉驗(yàn)證涤躲。另外噪聲和非相關(guān)性特征向量的存在會(huì)使K近鄰算法的準(zhǔn)確性減小。

近鄰算法具有較強(qiáng)的一致性結(jié)果嫁盲。隨著數(shù)據(jù)趨于無限篓叶,算法保證錯(cuò)誤率不會(huì)超過貝葉斯算法錯(cuò)誤率的兩倍烈掠。對(duì)于一些好的K值羞秤,K近鄰保證錯(cuò)誤率不會(huì)超過貝葉斯理論誤差率。

注:馬氏距離一定要先給出樣本集的統(tǒng)計(jì)性質(zhì)左敌,比如均值向量瘾蛋,協(xié)方差矩陣等。關(guān)于馬氏距離的介紹如下:

image

KNN算法的優(yōu)點(diǎn):

1. 思想簡單矫限,理論成熟哺哼,既可以用來做分類也可以用來做回歸;

2. 可用于非線性分類叼风;

3. 訓(xùn)練時(shí)間復(fù)雜度為O(n)取董;

4. 準(zhǔn)確度高,對(duì)數(shù)據(jù)沒有假設(shè)无宿,對(duì)outlier不敏感茵汰;

缺點(diǎn):

1. 計(jì)算量大琳拭;

2. 樣本不平衡問題(即有些類別的樣本數(shù)量很多梧田,而其它樣本的數(shù)量很少);

3. 需要大量的內(nèi)存翔怎;

  SVM****:

要學(xué)會(huì)如何使用libsvm以及一些參數(shù)的調(diào)節(jié)經(jīng)驗(yàn)彬碱,另外需要理清楚svm算法的一些思路:

1. svm中的最優(yōu)分類面是對(duì)所有樣本的幾何裕量最大(為什么要選擇最大間隔分類器豆胸,請(qǐng)從數(shù)學(xué)角度上說明?網(wǎng)易深度學(xué)習(xí)崗位面試過程中有被問到巷疼。答案就是幾何間隔與樣本的誤分次數(shù)間存在關(guān)系:
image

晚胡,其中的分母就是樣本到分類間隔距離,分子中的R是所有樣本中的最長向量值),即:

image

經(jīng)過一系列推導(dǎo)可得為優(yōu)化下面原始目標(biāo):

image

2. 下面來看看拉格朗日理論:

image

可以將1中的優(yōu)化目標(biāo)轉(zhuǎn)換為拉格朗日的形式(通過各種對(duì)偶優(yōu)化搬泥,KKD條件)桑寨,最后目標(biāo)函數(shù)為:

image

我們只需要最小化上述目標(biāo)函數(shù),其中的α為原始優(yōu)化問題中的不等式約束拉格朗日系數(shù)忿檩。

3. 對(duì)2中最后的式子分別w和b求導(dǎo)可得:

image
image

由上面第1式子可以知道尉尾,如果我們優(yōu)化出了α,則直接可以求出w了燥透,即模型的參數(shù)搞定沙咏。而上面第2個(gè)式子可以作為后續(xù)優(yōu)化的一個(gè)約束條件。

4. 對(duì)2中最后一個(gè)目標(biāo)函數(shù)用對(duì)偶優(yōu)化理論可以轉(zhuǎn)換為優(yōu)化下面的目標(biāo)函數(shù):

image

而這個(gè)函數(shù)可以用常用的優(yōu)化方法求得α班套,進(jìn)而求得w和b肢藐。

5. 按照道理,svm簡單理論應(yīng)該到此結(jié)束吱韭。不過還是要補(bǔ)充一點(diǎn)吆豹,即在預(yù)測時(shí)有:

image

那個(gè)尖括號(hào)我們可以用核函數(shù)代替,這也是svm經(jīng)常和核函數(shù)扯在一起的原因理盆。

6. 最后是關(guān)于松弛變量的引入痘煤,因此原始的目標(biāo)優(yōu)化公式為:

image

此時(shí)對(duì)應(yīng)的對(duì)偶優(yōu)化公式為:

image

與前面的相比只是α多了個(gè)上界。

SVM算法優(yōu)點(diǎn):

可用于線性/非線性分類猿规,也可以用于回歸衷快;

低泛化誤差;

容易解釋姨俩;

計(jì)算復(fù)雜度較低蘸拔;

缺點(diǎn):

對(duì)參數(shù)和核函數(shù)的選擇比較敏感;

原始的SVM只比較擅長處理二分類問題环葵;

  Boosting****:

主要以Adaboost為例调窍,首先來看看Adaboost的流程圖,如下:

image

從圖中可以看到张遭,在訓(xùn)練過程中我們需要訓(xùn)練出多個(gè)弱分類器(圖中為3個(gè))邓萨,每個(gè)弱分類器是由不同權(quán)重的樣本(圖中為5個(gè)訓(xùn)練樣本)訓(xùn)練得到(其中第一個(gè)弱分類器對(duì)應(yīng)輸入樣本的權(quán)值是一樣的),而每個(gè)弱分類器對(duì)最終分類結(jié)果的作用也不同帝璧,是通過加權(quán)平均輸出的先誉,權(quán)值見上圖中三角形里面的數(shù)值。那么這些弱分類器和其對(duì)應(yīng)的權(quán)值是怎樣訓(xùn)練出來的呢的烁?

下面通過一個(gè)例子來簡單說明褐耳。

書中(machine learning in action)假設(shè)的是5個(gè)訓(xùn)練樣本,每個(gè)訓(xùn)練樣本的維度為2渴庆,在訓(xùn)練第一個(gè)分類器時(shí)5個(gè)樣本的權(quán)重各為0.2. 注意這里樣本的權(quán)值和最終訓(xùn)練的弱分類器組對(duì)應(yīng)的權(quán)值α是不同的铃芦,樣本的權(quán)重只在訓(xùn)練過程中用到雅镊,而α在訓(xùn)練過程和測試過程都有用到。

現(xiàn)在假設(shè)弱分類器是帶一個(gè)節(jié)點(diǎn)的簡單決策樹刃滓,該決策樹會(huì)選擇2個(gè)屬性(假設(shè)只有2個(gè)屬性)的一個(gè)仁烹,然后計(jì)算出這個(gè)屬性中的最佳值用來分類。

Adaboost的簡單版本訓(xùn)練過程如下:

1. 訓(xùn)練第一個(gè)分類器咧虎,樣本的權(quán)值D為相同的均值卓缰。通過一個(gè)弱分類器,得到這5個(gè)樣本(請(qǐng)對(duì)應(yīng)書中的例子來看砰诵,依舊是machine learning in action)的分類預(yù)測標(biāo)簽征唬。與給出的樣本真實(shí)標(biāo)簽對(duì)比,就可能出現(xiàn)誤差(即錯(cuò)誤)茁彭。如果某個(gè)樣本預(yù)測錯(cuò)誤总寒,則它對(duì)應(yīng)的錯(cuò)誤值為該樣本的權(quán)重,如果分類正確理肺,則錯(cuò)誤值為0. 最后累加5個(gè)樣本的錯(cuò)誤率之和摄闸,記為ε。

2. 通過ε來計(jì)算該弱分類器的權(quán)重α妹萨,公式如下:

image

3. 通過α來計(jì)算訓(xùn)練下一個(gè)弱分類器樣本的權(quán)重D年枕,如果對(duì)應(yīng)樣本分類正確,則減小該樣本的權(quán)重眠副,公式為:

image

如果樣本分類錯(cuò)誤画切,則增加該樣本的權(quán)重竣稽,公式為:

image

4. 循環(huán)步驟1,2,3來繼續(xù)訓(xùn)練多個(gè)分類器囱怕,只是其D值不同而已。

測試過程如下:

輸入一個(gè)樣本到訓(xùn)練好的每個(gè)弱分類中毫别,則每個(gè)弱分類都對(duì)應(yīng)一個(gè)輸出標(biāo)簽娃弓,然后該標(biāo)簽乘以對(duì)應(yīng)的α,最后求和得到值的符號(hào)即為預(yù)測標(biāo)簽值岛宦。

Boosting算法的優(yōu)點(diǎn):

低泛化誤差台丛;

容易實(shí)現(xiàn),分類準(zhǔn)確率較高砾肺,沒有太多參數(shù)可以調(diào)挽霉;

缺點(diǎn):

對(duì)outlier比較敏感;

  聚類:

根據(jù)聚類思想劃分:

1. 基于劃分的聚類:

K-means, k-medoids(每一個(gè)類別中找一個(gè)樣本點(diǎn)來代表),CLARANS.

k-means是使下面的表達(dá)式值最斜渫簟:

image

*** k-means算法的優(yōu)點(diǎn):***

(1)k-means算法是解決聚類問題的一種經(jīng)典算法侠坎,算法簡單、快速裙盾。

(2)對(duì)處理大數(shù)據(jù)集实胸,該算法是相對(duì)可伸縮的和高效率的他嫡,因?yàn)樗膹?fù)雜度大約是O(nkt),其中n是所有對(duì)象的數(shù)目庐完,k是簇的數(shù)目,t是迭代的次數(shù)钢属。通常k<<n。這個(gè)算法通常局部收斂门躯。

(3)算法嘗試找出使平方誤差函數(shù)值最小的k個(gè)劃分淆党。當(dāng)簇是密集的、球狀或團(tuán)狀的讶凉,且簇與簇之間區(qū)別明顯時(shí)宁否,聚類效果較好。

缺點(diǎn):

(1)k-平均方法只有在簇的平均值被定義的情況下才能使用缀遍,且對(duì)有些分類屬性的數(shù)據(jù)不適合慕匠。

(2)要求用戶必須事先給出要生成的簇的數(shù)目k。

(3)對(duì)初值敏感域醇,對(duì)于不同的初始值台谊,可能會(huì)導(dǎo)致不同的聚類結(jié)果。

(4)不適合于發(fā)現(xiàn)非凸面形狀的簇譬挚,或者大小差別很大的簇锅铅。

(5)對(duì)于"噪聲"和孤立點(diǎn)數(shù)據(jù)敏感,少量的該類數(shù)據(jù)能夠?qū)ζ骄诞a(chǎn)生極大影響减宣。

2. 基于層次的聚類:

自底向上的凝聚方法盐须,比如AGNES。

自上向下的分裂方法漆腌,比如DIANA贼邓。

3. 基于密度的聚類:

DBSACN,OPTICS,BIRCH(CF-Tree),CURE.

4. 基于網(wǎng)格的方法:

STING, WaveCluster.

5. 基于模型的聚類:

EM,SOM,COBWEB.

以上這些算法的簡介可參考聚類(百度百科)。

  推薦系統(tǒng):

推薦系統(tǒng)的實(shí)現(xiàn)主要分為兩個(gè)方面:基于內(nèi)容的實(shí)現(xiàn)和協(xié)同濾波的實(shí)現(xiàn)闷尿。

基于內(nèi)容的實(shí)現(xiàn):

不同人對(duì)不同電影的評(píng)分這個(gè)例子塑径,可以看做是一個(gè)普通的回歸問題,因此每部電影都需要提前提取出一個(gè)特征向量(即x值)填具,然后針對(duì)每個(gè)用戶建模统舀,即每個(gè)用戶打的分值作為y值,利用這些已有的分值y和電影特征值x就可以訓(xùn)練回歸模型了(最常見的就是線性回歸)劳景。這樣就可以預(yù)測那些用戶沒有評(píng)分的電影的分?jǐn)?shù)誉简。(值得注意的是需對(duì)每個(gè)用戶都建立他自己的回歸模型)

從另一個(gè)角度來看,也可以是先給定每個(gè)用戶對(duì)某種電影的喜好程度(即權(quán)值)盟广,然后學(xué)出每部電影的特征闷串,最后采用回歸來預(yù)測那些沒有被評(píng)分的電影。

當(dāng)然還可以是同時(shí)優(yōu)化得到每個(gè)用戶對(duì)不同類型電影的熱愛程度以及每部電影的特征衡蚂。具體可以參考Ng在coursera上的ml教程:https://www.coursera.org/course/ml

基于協(xié)同濾波的實(shí)現(xiàn):

協(xié)同濾波(CF)可以看做是一個(gè)分類問題窿克,也可以看做是矩陣分解問題骏庸。協(xié)同濾波主要是基于每個(gè)人自己的喜好都類似這一特征,它不依賴于個(gè)人的基本信息年叮。比如剛剛那個(gè)電影評(píng)分的例子中具被,預(yù)測那些沒有被評(píng)分的電影的分?jǐn)?shù)只依賴于已經(jīng)打分的那些分?jǐn)?shù),并不需要去學(xué)習(xí)那些電影的特征只损。

SVD將矩陣分解為三個(gè)矩陣的乘積一姿,公式如下所示:

image

中間的矩陣sigma為對(duì)角矩陣,對(duì)角元素的值為Data矩陣的奇異值(注意奇異值和特征值是不同的)跃惫,且已經(jīng)從大到小排列好了叮叹。即使去掉特征值小的那些特征,依然可以很好的重構(gòu)出原始矩陣爆存。如下圖所示:

image

其中更深的顏色代表去掉小特征值重構(gòu)時(shí)的三個(gè)矩陣蛉顽。

果m代表商品的個(gè)數(shù),n代表用戶的個(gè)數(shù)先较,則U矩陣的每一行代表商品的屬性携冤,現(xiàn)在通過降維U矩陣(取深色部分)后,每一個(gè)商品的屬性可以用更低的維度表示(假設(shè)為k維)闲勺。這樣當(dāng)新來一個(gè)用戶的商品推薦向量X曾棕,則可以根據(jù)公式X'U1inv(S1)得到一個(gè)k維的向量,然后在V’中尋找最相似的那一個(gè)用戶(相似度測量可用余弦公式等)菜循,根據(jù)這個(gè)用戶的評(píng)分來推薦(主要是推薦新用戶未打分的那些商品)翘地。具體例子可以參考網(wǎng)頁:SVD在推薦系統(tǒng)中的應(yīng)用

另外關(guān)于SVD分解后每個(gè)矩陣的實(shí)際含義可以參考google吳軍的《數(shù)學(xué)之美》一書(不過個(gè)人感覺吳軍解釋UV兩個(gè)矩陣時(shí)好像弄反了癌幕,不知道大家怎樣認(rèn)為)衙耕。或者參考machine learning in action其中的svd章節(jié)序芦。

  pLSA:

pLSA由LSA發(fā)展過來臭杰,而早期LSA的實(shí)現(xiàn)主要是通過SVD分解粤咪。pLSA的模型圖如下:

image

公式中的意義如下:

image

具體可以參考2010龍星計(jì)劃:機(jī)器學(xué)習(xí)中對(duì)應(yīng)的主題模型那一講

  LDA****:

主題模型谚中,概率圖如下:

image

和pLSA不同的是LDA中假設(shè)了很多先驗(yàn)分布,且一般參數(shù)的先驗(yàn)分布都假設(shè)為Dirichlet分布寥枝,其原因是共軛分布時(shí)先驗(yàn)概率和后驗(yàn)概率的形式相同宪塔。

  GDBT****:

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),好像在阿里內(nèi)部用得比較多(所以阿里算法崗位面試時(shí)可能會(huì)問到)囊拜,它是一種迭代的決策樹算法某筐,該算法由多棵決策樹組成,所有樹的輸出結(jié)果累加起來就是最終答案冠跷。它在被提出之初就和SVM一起被認(rèn)為是泛化能力(generalization)較強(qiáng)的算法南誊。近些年更因?yàn)楸挥糜谒阉髋判虻臋C(jī)器學(xué)習(xí)模型而引起大家關(guān)注身诺。

GBDT是回歸樹,不是分類樹抄囚。其核心就在于霉赡,每一棵樹是從之前所有樹的殘差中來學(xué)習(xí)的。為了防止過擬合幔托,和Adaboosting一樣穴亏,也加入了boosting這一項(xiàng)。

關(guān)于GDBT的介紹可以可以參考:GBDT(MART) 迭代決策樹入門教程 | 簡介重挑。

  Regularization:

作用是(網(wǎng)易電話面試時(shí)有問到):

1. 數(shù)值上更容易求解嗓化;

2. 特征數(shù)目太大時(shí)更穩(wěn)定;

3. 控制模型的復(fù)雜度谬哀,光滑性刺覆。復(fù)雜性越小且越光滑的目標(biāo)函數(shù)泛化能力越強(qiáng)。而加入規(guī)則項(xiàng)能使目標(biāo)函數(shù)復(fù)雜度減小史煎,且更光滑隅津。

4. 減小參數(shù)空間;參數(shù)空間越小劲室,復(fù)雜度越低伦仍。

5. 系數(shù)越小,模型越簡單很洋,而模型越簡單則泛化能力越強(qiáng)(Ng宏觀上給出的解釋)充蓝。

6. 可以看成是權(quán)值的高斯先驗(yàn)。

  異常檢測:

可以估計(jì)樣本的密度函數(shù)喉磁,對(duì)于新樣本直接計(jì)算其密度谓苟,如果密度值小于某一閾值,則表示該樣本異常协怒。而密度函數(shù)一般采用多維的高斯分布涝焙。如果樣本有n維,則每一維的特征都可以看作是符合高斯分布的孕暇,即使這些特征可視化出來不太符合高斯分布仑撞,也可以對(duì)該特征進(jìn)行數(shù)學(xué)轉(zhuǎn)換讓其看起來像高斯分布,比如說x=log(x+c), x=x^(1/c)等妖滔。異常檢測的算法流程如下:

image

其中的ε也是通過交叉驗(yàn)證得到的隧哮,也就是說在進(jìn)行異常檢測時(shí),前面的p(x)的學(xué)習(xí)是用的無監(jiān)督座舍,后面的參數(shù)ε學(xué)習(xí)是用的有監(jiān)督沮翔。那么為什么不全部使用普通有監(jiān)督的方法來學(xué)習(xí)呢(即把它看做是一個(gè)普通的二分類問題)?主要是因?yàn)樵诋惓z測中曲秉,異常的樣本數(shù)量非常少而正常樣本數(shù)量非常多采蚀,因此不足以學(xué)習(xí)到好的異常行為模型的參數(shù)疲牵,因?yàn)楹竺嫘聛淼漠惓颖究赡芡耆桥c訓(xùn)練樣本中的模式不同。

另外榆鼠,上面是將特征的每一維看成是相互獨(dú)立的高斯分布瑰步,其實(shí)這樣的近似并不是最好的,但是它的計(jì)算量較小璧眠,因此也常被使用缩焦。更好的方法應(yīng)該是將特征擬合成多維高斯分布,這時(shí)有特征之間的相關(guān)性责静,但隨之計(jì)算量會(huì)變復(fù)雜袁滥,且樣本的協(xié)方差矩陣還可能出現(xiàn)不可逆的情況(主要在樣本數(shù)比特征數(shù)小,或者樣本特征維數(shù)之間有線性關(guān)系時(shí))灾螃。

上面的內(nèi)容可以參考Ng的https://www.coursera.org/course/ml

  EM****算法:

有時(shí)候因?yàn)闃颖镜漠a(chǎn)生和隱含變量有關(guān)(隱含變量是不能觀察的)题翻,而求模型的參數(shù)時(shí)一般采用最大似然估計(jì),由于含有了隱含變量腰鬼,所以對(duì)似然函數(shù)參數(shù)求導(dǎo)是求不出來的嵌赠,這時(shí)可以采用EM算法來求模型的參數(shù)的(對(duì)應(yīng)模型參數(shù)個(gè)數(shù)可能有多個(gè)),EM算法一般分為2步:

E步:選取一組參數(shù)熄赡,求出在該參數(shù)下隱含變量的條件概率值姜挺;

M步:結(jié)合E步求出的隱含變量條件概率,求出似然函數(shù)下界函數(shù)(本質(zhì)上是某個(gè)期望函數(shù))的最大值彼硫。

重復(fù)上面2步直至收斂炊豪。

公式如下所示:

image

M步公式中下界函數(shù)的推導(dǎo)過程:

image

EM算法一個(gè)常見的例子就是GMM模型,每個(gè)樣本都有可能由k個(gè)高斯產(chǎn)生拧篮,只不過由每個(gè)高斯產(chǎn)生的概率不同而已词渤,因此每個(gè)樣本都有對(duì)應(yīng)的高斯分布(k個(gè)中的某一個(gè)),此時(shí)的隱含變量就是每個(gè)樣本對(duì)應(yīng)的某個(gè)高斯分布串绩。

GMM的E步公式如下(計(jì)算每個(gè)樣本對(duì)應(yīng)每個(gè)高斯的概率):

image

更具體的計(jì)算公式為:

image

M步公式如下(計(jì)算每個(gè)高斯的比重缺虐,均值,方差這3個(gè)參數(shù)):

image

關(guān)于EM算法可以參考Ng的cs229課程資料 或者網(wǎng)易公開課:斯坦福大學(xué)公開課 :機(jī)器學(xué)習(xí)課程礁凡。

  Apriori:

Apriori是關(guān)聯(lián)分析中比較早的一種方法高氮,主要用來挖掘那些頻繁項(xiàng)集合。其思想是:

1. 如果一個(gè)項(xiàng)目集合不是頻繁集合把篓,那么任何包含它的項(xiàng)目集合也一定不是頻繁集合纫溃;

2. 如果一個(gè)項(xiàng)目集合是頻繁集合,那么它的任何非空子集也是頻繁集合韧掩;

Aprioir需要掃描項(xiàng)目表多遍,從一個(gè)項(xiàng)目開始掃描窖铡,舍去掉那些不是頻繁的項(xiàng)目疗锐,得到的集合稱為L坊谁,然后對(duì)L中的每個(gè)元素進(jìn)行自組合,生成比上次掃描多一個(gè)項(xiàng)目的集合滑臊,該集合稱為C口芍,接著又掃描去掉那些非頻繁的項(xiàng)目,重復(fù)…

看下面這個(gè)例子:

元素項(xiàng)目表格:

image

如果每個(gè)步驟不去掉非頻繁項(xiàng)目集雇卷,則其掃描過程的樹形結(jié)構(gòu)如下:

image

在其中某個(gè)過程中鬓椭,可能出現(xiàn)非頻繁的項(xiàng)目集,將其去掉(用陰影表示)為:

image

上面的內(nèi)容主要參考的是machine learning in action這本書关划。

  FP Growth:

FP Growth是一種比Apriori更高效的頻繁項(xiàng)挖掘方法小染,它只需要掃描項(xiàng)目表2次。其中第1次掃描獲得當(dāng)個(gè)項(xiàng)目的頻率贮折,去掉不符合支持度要求的項(xiàng)裤翩,并對(duì)剩下的項(xiàng)排序。第2遍掃描是建立一顆FP-Tree(frequent-patten tree)调榄。

接下來的工作就是在FP-Tree上進(jìn)行挖掘踊赠。

比如說有下表:

image

它所對(duì)應(yīng)的FP_Tree如下:

image

然后從頻率最小的單項(xiàng)P開始,找出P的條件模式基每庆,用構(gòu)造FP_Tree同樣的方法來構(gòu)造P的條件模式基的FP_Tree筐带,在這棵樹上找出包含P的頻繁項(xiàng)集。

依次從m,b,a,c,f的條件模式基上挖掘頻繁項(xiàng)集缤灵,有些項(xiàng)需要遞歸的去挖掘烫堤,比較麻煩,比如m節(jié)點(diǎn)凤价,具體的過程可以參考博客:Frequent Pattern 挖掘之二(FP Growth算法)鸽斟,里面講得很詳細(xì)。

參考資料:
csdn機(jī)器學(xué)習(xí)算法整理
2010龍星計(jì)劃:機(jī)器學(xué)習(xí) 對(duì)應(yīng)的視頻教程: 2010龍星計(jì)劃機(jī)器學(xué)習(xí)視頻教程
GBDT(MART) 迭代決策樹入門教程 | 簡介
Ng的cs229課程資料
斯坦福大學(xué)公開課 :機(jī)器學(xué)習(xí)課程
Frequent Pattern 挖掘之二(FP Growth算法)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末利诺,一起剝皮案震驚了整個(gè)濱河市富蓄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慢逾,老刑警劉巖立倍,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侣滩,居然都是意外死亡口注,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門君珠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寝志,“玉大人,你說我怎么就攤上這事〔牟浚” “怎么了毫缆?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乐导。 經(jīng)常有香客問我苦丁,道長,這世上最難降的妖魔是什么物臂? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任旺拉,我火速辦了婚禮,結(jié)果婚禮上棵磷,老公的妹妹穿的比我還像新娘蛾狗。我一直安慰自己,他們只是感情好泽本,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布淘太。 她就那樣靜靜地躺著,像睡著了一般规丽。 火紅的嫁衣襯著肌膚如雪蒲牧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天赌莺,我揣著相機(jī)與錄音冰抢,去河邊找鬼。 笑死艘狭,一個(gè)胖子當(dāng)著我的面吹牛挎扰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播巢音,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼遵倦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了官撼?” 一聲冷哼從身側(cè)響起梧躺,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎傲绣,沒想到半個(gè)月后掠哥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秃诵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年续搀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菠净。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禁舷,死狀恐怖彪杉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榛了,我是刑警寧澤在讶,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布煞抬,位于F島的核電站霜大,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏革答。R本人自食惡果不足惜战坤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望残拐。 院中可真熱鬧途茫,春花似錦、人聲如沸溪食。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽错沃。三九已至栅组,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枢析,已是汗流浹背玉掸。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留醒叁,地道東北人司浪。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像把沼,于是被迫代替她去往敵國和親啊易。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容