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

http://www.cnblogs.com/tornadomeet/p/3395593.html
 前言:
  找工作時(IT行業(yè))然低,除了常見的軟件開發(fā)以外归薛,機器學(xué)習(xí)崗位也可以當(dāng)作是一個選擇,不少計算機方向的研究生都會接觸這個手形,如果你的研究方向是機器學(xué)習(xí)/數(shù)據(jù)挖掘之類侧巨,且又對其非常感興趣的話惨远,可以考慮考慮該崗位翰守,畢竟在機器智能沒達(dá)到人類水平之前孵奶,機器學(xué)習(xí)可以作為一種重要手段,而隨著科技的不斷發(fā)展蜡峰,相信這方面的人才需求也會越來越大了袁。
  縱觀IT行業(yè)的招聘崗位,機器學(xué)習(xí)之類的崗位還是挺少的湿颅,國內(nèi)大點的公司里百度载绿,阿里,騰訊肖爵,網(wǎng)易,搜狐臀脏,華為(華為的崗位基本都是隨機分配劝堪,機器學(xué)習(xí)等崗位基本面向的是博士)等會有相關(guān)職位,另外一些國內(nèi)的中小型企業(yè)和外企也會招一小部分揉稚。當(dāng)然了秒啦,其中大部分還是百度北京要人最多,上百人搀玖。阿里的算法崗位很大一部分也是搞機器學(xué)習(xí)相關(guān)的余境。另外本人有幸簽約了網(wǎng)易杭州研究院的深度學(xué)習(xí)算法崗位,打算從事機器學(xué)習(xí)領(lǐng)域至少5年灌诅。非常感謝小易收留了我芳来!
  下面是本人在找機器學(xué)習(xí)崗位工作時,總結(jié)的常見機器學(xué)習(xí)算法(主要是一些常規(guī)分類器)大概流程和主要思想猜拾,希望對大家找機器學(xué)習(xí)崗位時有點幫助即舌。實際上在面試過程中,懂這些算法的基本思想和大概流程是遠(yuǎn)遠(yuǎn)不夠的挎袜,那些面試官往往問的都是一些公司內(nèi)部業(yè)務(wù)中的課題顽聂,往往要求你不僅要懂得這些算法的理論過程肥惭,而且要非常熟悉怎樣使用它,什么場合用它紊搪,算法的優(yōu)缺點蜜葱,以及調(diào)參經(jīng)驗等等。說白了耀石,就是既要會點理論牵囤,也要會點應(yīng)用,既要有點深度娶牌,也要有點廣度奔浅,否則運氣不好的話很容易就被刷掉,因為每個面試官愛好不同诗良。

  樸素貝葉斯:
  有以下幾個地方需要注意:
  1. 如果給出的特征向量長度可能不同汹桦,這是需要歸一化為通長度的向量(這里以文本分類為例),比如說是句子單詞的話鉴裹,則長度為整個詞匯量的長度舞骆,對應(yīng)位置是該單詞出現(xiàn)的次數(shù)。
  2. 計算公式如下:
  


  其中一項條件概率可以通過樸素貝葉斯條件獨立展開径荔。要注意一點就是
的計算方法督禽,而由樸素貝葉斯的前提假設(shè)可知,
=
总处,因此一般有兩種狈惫,一種是在類別為ci的那些樣本集中,找到wj出現(xiàn)次數(shù)的總和鹦马,然后除以該樣本的總和胧谈;第二種方法是類別為ci的那些樣本集中,找到wj出現(xiàn)次數(shù)的總和荸频,然后除以該樣本中所有特征出現(xiàn)次數(shù)的總和菱肖。
  3. 如果
中的某一項為0,則其聯(lián)合概率的乘積也可能為0旭从,即2中公式的分子為0稳强,為了避免這種現(xiàn)象出現(xiàn),一般情況下會將這一項初始化為1和悦,當(dāng)然為了保證概率相等退疫,分母應(yīng)對應(yīng)初始化為2(這里因為是2類,所以加2鸽素,如果是k類就需要加k蹄咖,術(shù)語上叫做laplace光滑, 分母加k的原因是使之滿足全概率公式)。
  樸素貝葉斯的優(yōu)點:
  對小規(guī)模的數(shù)據(jù)表現(xiàn)很好付鹿,適合多分類任務(wù)澜汤,適合增量式訓(xùn)練蚜迅。
  缺點
  對輸入數(shù)據(jù)的表達(dá)形式很敏感。

  決策樹:
  決策樹中很重要的一點就是選擇一個屬性進(jìn)行分枝俊抵,因此要注意一下信息增益的計算公式谁不,并深入理解它。
  信息熵的計算公式如下:
  


  其中的n代表有n個分類類別(比如假設(shè)是2類問題徽诲,那么n=2)刹帕。分別計算這2類樣本在總樣本中出現(xiàn)的概率p1和p2,這樣就可以計算出未選中屬性分枝前的信息熵谎替。
  現(xiàn)在選中一個屬性xi用來進(jìn)行分枝偷溺,此時分枝規(guī)則是:如果xi=vx的話,將樣本分到樹的一個分支钱贯;如果不相等則進(jìn)入另一個分支挫掏。很顯然,分支中的樣本很有可能包括2個類別秩命,分別計算這2個分支的熵H1和H2,計算出分枝后的總信息熵H’=p1H1+p2H2.尉共,則此時的信息增益ΔH=H-H’。以信息增益為原則弃锐,把所有的屬性都測試一邊袄友,選擇一個使增益最大的屬性作為本次分枝屬性。
  決策樹的優(yōu)點:
  計算量簡單霹菊,可解釋性強剧蚣,比較適合處理有缺失屬性值的樣本,能夠處理不相關(guān)的特征旋廷;
  缺點:
  容易過擬合(后續(xù)出現(xiàn)了隨機森林鸠按,減小了過擬合現(xiàn)象);

  Logistic回歸:
  Logistic是用來分類的柳洋,是一種線性分類器待诅,需要注意的地方有:
  1. logistic函數(shù)表達(dá)式為:
  


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

  2. logsitc回歸方法主要是用最大似然估計來學(xué)習(xí)的叹坦,所以單個樣本的后驗概率為:
  

  到整個樣本的后驗概率:
  

  其中:
  

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

  3. 其實它的loss function為-l(θ)熊镣,因此我們需使loss function最小,可采用梯度下降法得到募书。梯度下降法公式為:
  

  

  Logistic回歸優(yōu)點:
  1绪囱、實現(xiàn)簡單;
  2莹捡、分類時計算量非常小鬼吵,速度很快,存儲資源低篮赢;
  缺點:
  1齿椅、容易欠擬合琉挖,一般準(zhǔn)確度不太高
  2、只能處理兩分類問題(在此基礎(chǔ)上衍生出來的softmax可以用于多分類)涣脚,且必須線性可分示辈;

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


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

  因為此時優(yōu)化的是:
  

  由此可見LWLR與LR不同险耀,LWLR是一個非參數(shù)模型,因為每次進(jìn)行回歸計算都要遍歷訓(xùn)練樣本至少一次玖喘。
  線性回歸優(yōu)點:
  實現(xiàn)簡單甩牺,計算簡單;
  缺點:
  不能擬合非線性數(shù)據(jù)芒涡;

  KNN****算法:
  KNN即最近鄰算法柴灯,其主要過程為:
  1. 計算訓(xùn)練樣本和測試樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等)费尽;
  2. 對上面所有的距離值進(jìn)行排序赠群;
  3. 選前k個最小距離的樣本;
  4. 根據(jù)這k個樣本的標(biāo)簽進(jìn)行投票旱幼,得到最后的分類類別查描;
  如何選擇一個最佳的K值,這取決于數(shù)據(jù)柏卤。一般情況下冬三,在分類時較大的K值能夠減小噪聲的影響。但會使類別之間的界限變得模糊缘缚。一個較好的K值可通過各種啟發(fā)式技術(shù)來獲取勾笆,比如,交叉驗證桥滨。另外噪聲和非相關(guān)性特征向量的存在會使K近鄰算法的準(zhǔn)確性減小窝爪。
  近鄰算法具有較強的一致性結(jié)果。隨著數(shù)據(jù)趨于無限齐媒,算法保證錯誤率不會超過貝葉斯算法錯誤率的兩倍蒲每。對于一些好的K值,K近鄰保證錯誤率不會超過貝葉斯理論誤差率喻括。
  注:馬氏距離一定要先給出樣本集的統(tǒng)計性質(zhì)邀杏,比如均值向量,協(xié)方差矩陣等唬血。關(guān)于馬氏距離的介紹如下:
  


  KNN算法的優(yōu)點:
  1. 思想簡單望蜡,理論成熟唤崭,既可以用來做分類也可以用來做回歸;
  2. 可用于非線性分類脖律;
  3. 訓(xùn)練時間復(fù)雜度為O(n)浩姥;
  4. 準(zhǔn)確度高,對數(shù)據(jù)沒有假設(shè)状您,對outlier不敏感勒叠;
  缺點:
  1. 計算量大;
  2. 樣本不平衡問題(即有些類別的樣本數(shù)量很多膏孟,而其它樣本的數(shù)量很少)眯分;
  3. 需要大量的內(nèi)存;

  SVM****:
  要學(xué)會如何使用libsvm以及一些參數(shù)的調(diào)節(jié)經(jīng)驗柒桑,另外需要理清楚svm算法的一些思路:
  1. svm中的最優(yōu)分類面是對所有樣本的幾何裕量最大(為什么要選擇最大間隔分類器弊决,請從數(shù)學(xué)角度上說明?網(wǎng)易深度學(xué)習(xí)崗位面試過程中有被問到魁淳。答案就是幾何間隔與樣本的誤分次數(shù)間存在關(guān)系:

飘诗,其中的分母就是樣本到分類間隔距離,分子中的R是所有樣本中的最長向量值)界逛,即:
  [圖片上傳中昆稿。。息拜。(20)]
  經(jīng)過一系列推導(dǎo)可得為優(yōu)化下面原始目標(biāo):
  [圖片上傳中溉潭。。少欺。(21)]
  2. 下面來看看拉格朗日理論:
  [圖片上傳中喳瓣。。赞别。(22)]
  可以將1中的優(yōu)化目標(biāo)轉(zhuǎn)換為拉格朗日的形式(通過各種對偶優(yōu)化畏陕,KKD條件),最后目標(biāo)函數(shù)為:
  [圖片上傳中仿滔。惠毁。。(23)]
  我們只需要最小化上述目標(biāo)函數(shù)堤撵,其中的α為原始優(yōu)化問題中的不等式約束拉格朗日系數(shù)仁讨。
  3. 對2中最后的式子分別w和b求導(dǎo)可得:
  [圖片上傳中羽莺。实昨。。(24)]
  [圖片上傳中盐固。荒给。丈挟。(25)]
  由上面第1式子可以知道,如果我們優(yōu)化出了α志电,則直接可以求出w了曙咽,即模型的參數(shù)搞定。而上面第2個式子可以作為后續(xù)優(yōu)化的一個約束條件挑辆。
  4. 對2中最后一個目標(biāo)函數(shù)用對偶優(yōu)化理論可以轉(zhuǎn)換為優(yōu)化下面的目標(biāo)函數(shù):
  [圖片上傳中例朱。。鱼蝉。(26)]
  而這個函數(shù)可以用常用的優(yōu)化方法求得α洒嗤,進(jìn)而求得w和b。
  5. 按照道理魁亦,svm簡單理論應(yīng)該到此結(jié)束渔隶。不過還是要補充一點,即在預(yù)測時有:
  [圖片上傳中洁奈。间唉。。(27)]
  那個尖括號我們可以用核函數(shù)代替利术,這也是svm經(jīng)常和核函數(shù)扯在一起的原因呈野。
  6. 最后是關(guān)于松弛變量的引入,因此原始的目標(biāo)優(yōu)化公式為:
  [圖片上傳中印叁。际跪。。(28)]
  此時對應(yīng)的對偶優(yōu)化公式為:
  [圖片上傳中喉钢。姆打。。(29)]
  與前面的相比只是α多了個上界肠虽。
  SVM算法優(yōu)點:
  可用于線性/非線性分類幔戏,也可以用于回歸;
  低泛化誤差税课;
  容易解釋闲延;
  計算復(fù)雜度較低;
  缺點:
  對參數(shù)和核函數(shù)的選擇比較敏感韩玩;
  原始的SVM只比較擅長處理二分類問題垒玲;

  Boosting****:
  主要以Adaboost為例,首先來看看Adaboost的流程圖找颓,如下:
  [圖片上傳中合愈。。。(30)]
  從圖中可以看到佛析,在訓(xùn)練過程中我們需要訓(xùn)練出多個弱分類器(圖中為3個)益老,每個弱分類器是由不同權(quán)重的樣本(圖中為5個訓(xùn)練樣本)訓(xùn)練得到(其中第一個弱分類器對應(yīng)輸入樣本的權(quán)值是一樣的),而每個弱分類器對最終分類結(jié)果的作用也不同寸莫,是通過加權(quán)平均輸出的捺萌,權(quán)值見上圖中三角形里面的數(shù)值。那么這些弱分類器和其對應(yīng)的權(quán)值是怎樣訓(xùn)練出來的呢膘茎?
  下面通過一個例子來簡單說明桃纯。
  書中(machine learning in action)假設(shè)的是5個訓(xùn)練樣本,每個訓(xùn)練樣本的維度為2披坏,在訓(xùn)練第一個分類器時5個樣本的權(quán)重各為0.2. 注意這里樣本的權(quán)值和最終訓(xùn)練的弱分類器組對應(yīng)的權(quán)值α是不同的慈参,樣本的權(quán)重只在訓(xùn)練過程中用到,而α在訓(xùn)練過程和測試過程都有用到刮萌。
  現(xiàn)在假設(shè)弱分類器是帶一個節(jié)點的簡單決策樹驮配,該決策樹會選擇2個屬性(假設(shè)只有2個屬性)的一個,然后計算出這個屬性中的最佳值用來分類着茸。
  Adaboost的簡單版本訓(xùn)練過程如下:
  1. 訓(xùn)練第一個分類器壮锻,樣本的權(quán)值D為相同的均值。通過一個弱分類器涮阔,得到這5個樣本(請對應(yīng)書中的例子來看猜绣,依舊是machine learning in action)的分類預(yù)測標(biāo)簽。與給出的樣本真實標(biāo)簽對比敬特,就可能出現(xiàn)誤差(即錯誤)掰邢。如果某個樣本預(yù)測錯誤,則它對應(yīng)的錯誤值為該樣本的權(quán)重伟阔,如果分類正確辣之,則錯誤值為0. 最后累加5個樣本的錯誤率之和,記為ε皱炉。
  2. 通過ε來計算該弱分類器的權(quán)重α怀估,公式如下:
  [圖片上傳中。合搅。多搀。(31)]
  3. 通過α來計算訓(xùn)練下一個弱分類器樣本的權(quán)重D,如果對應(yīng)樣本分類正確灾部,則減小該樣本的權(quán)重康铭,公式為:
  [圖片上傳中。赌髓。从藤。(32)]
  如果樣本分類錯誤催跪,則增加該樣本的權(quán)重,公式為:
  [圖片上傳中呛哟。。匿沛。(33)]
  4. 循環(huán)步驟1,2,3來繼續(xù)訓(xùn)練多個分類器扫责,只是其D值不同而已。
  測試過程如下:
  輸入一個樣本到訓(xùn)練好的每個弱分類中逃呼,則每個弱分類都對應(yīng)一個輸出標(biāo)簽鳖孤,然后該標(biāo)簽乘以對應(yīng)的α,最后求和得到值的符號即為預(yù)測標(biāo)簽值抡笼。
  Boosting算法的優(yōu)點:
  低泛化誤差苏揣;
  容易實現(xiàn),分類準(zhǔn)確率較高推姻,沒有太多參數(shù)可以調(diào)平匈;
  缺點:
  對outlier比較敏感;

  聚類:
  根據(jù)聚類思想劃分:
  1. 基于劃分的聚類:
  K-means, k-medoids(每一個類別中找一個樣本點來代表),CLARANS.
  k-means是使下面的表達(dá)式值最胁毓拧:
  [圖片上傳中增炭。。拧晕。(34)]
  *** k-means算法的優(yōu)點:***
 ∠蹲恕(1)k-means算法是解決聚類問題的一種經(jīng)典算法,算法簡單厂捞、快速输玷。
  (2)對處理大數(shù)據(jù)集靡馁,該算法是相對可伸縮的和高效率的欲鹏,因為它的復(fù)雜度大約是O(nkt),其中n是所有對象的數(shù)目臭墨,k是簇的數(shù)目,t是迭代的次數(shù)貌虾。通常k<<n。這個算法通常局部收斂裙犹。
 【『荨(3)算法嘗試找出使平方誤差函數(shù)值最小的k個劃分。當(dāng)簇是密集的叶圃、球狀或團(tuán)狀的袄膏,且簇與簇之間區(qū)別明顯時,聚類效果較好掺冠。
   缺點:
 〕凉荨(1)k-平均方法只有在簇的平均值被定義的情況下才能使用码党,且對有些分類屬性的數(shù)據(jù)不適合。
 〕夂凇(2)要求用戶必須事先給出要生成的簇的數(shù)目k揖盘。
  (3)對初值敏感锌奴,對于不同的初始值兽狭,可能會導(dǎo)致不同的聚類結(jié)果。
 ÷故瘛(4)不適合于發(fā)現(xiàn)非凸面形狀的簇箕慧,或者大小差別很大的簇。
 ≤钋 (5)對于"噪聲"和孤立點數(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)的實現(xiàn)主要分為兩個方面:基于內(nèi)容的實現(xiàn)和協(xié)同濾波的實現(xiàn)。
  基于內(nèi)容的實現(xiàn):
  不同人對不同電影的評分這個例子丈秩,可以看做是一個普通的回歸問題盯捌,因此每部電影都需要提前提取出一個特征向量(即x值),然后針對每個用戶建模蘑秽,即每個用戶打的分值作為y值饺著,利用這些已有的分值y和電影特征值x就可以訓(xùn)練回歸模型了(最常見的就是線性回歸)。這樣就可以預(yù)測那些用戶沒有評分的電影的分?jǐn)?shù)肠牲。(值得注意的是需對每個用戶都建立他自己的回歸模型)
  從另一個角度來看幼衰,也可以是先給定每個用戶對某種電影的喜好程度(即權(quán)值),然后學(xué)出每部電影的特征缀雳,最后采用回歸來預(yù)測那些沒有被評分的電影渡嚣。
  當(dāng)然還可以是同時優(yōu)化得到每個用戶對不同類型電影的熱愛程度以及每部電影的特征。具體可以參考Ng在coursera上的ml教程:https://www.coursera.org/course/ml
  基于協(xié)同濾波的實現(xiàn):
  協(xié)同濾波(CF)可以看做是一個分類問題肥印,也可以看做是矩陣分解問題识椰。協(xié)同濾波主要是基于每個人自己的喜好都類似這一特征,它不依賴于個人的基本信息深碱。比如剛剛那個電影評分的例子中腹鹉,預(yù)測那些沒有被評分的電影的分?jǐn)?shù)只依賴于已經(jīng)打分的那些分?jǐn)?shù),并不需要去學(xué)習(xí)那些電影的特征敷硅。
  SVD將矩陣分解為三個矩陣的乘積功咒,公式如下所示:
  [圖片上傳中愉阎。。力奋。(35)]
  中間的矩陣sigma為對角矩陣榜旦,對角元素的值為Data矩陣的奇異值(注意奇異值和特征值是不同的),且已經(jīng)從大到小排列好了景殷。即使去掉特征值小的那些特征溅呢,依然可以很好的重構(gòu)出原始矩陣总棵。如下圖所示:
  [圖片上傳中瓮下。。。(36)]
  其中更深的顏色代表去掉小特征值重構(gòu)時的三個矩陣亭饵。
  果m代表商品的個數(shù),n代表用戶的個數(shù)梁厉,則U矩陣的每一行代表商品的屬性辜羊,現(xiàn)在通過降維U矩陣(取深色部分)后,每一個商品的屬性可以用更低的維度表示(假設(shè)為k維)词顾。這樣當(dāng)新來一個用戶的商品推薦向量X八秃,則可以根據(jù)公式X'U1inv(S1)得到一個k維的向量,然后在V’中尋找最相似的那一個用戶(相似度測量可用余弦公式等)肉盹,根據(jù)這個用戶的評分來推薦(主要是推薦新用戶未打分的那些商品)昔驱。具體例子可以參考網(wǎng)頁:SVD在推薦系統(tǒng)中的應(yīng)用
  另外關(guān)于SVD分解后每個矩陣的實際含義可以參考google吳軍的《數(shù)學(xué)之美》一書(不過個人感覺吳軍解釋UV兩個矩陣時好像弄反了上忍,不知道大家怎樣認(rèn)為)骤肛。或者參考machine learning in action其中的svd章節(jié)窍蓝。

  pLSA:
  pLSA由LSA發(fā)展過來腋颠,而早期LSA的實現(xiàn)主要是通過SVD分解。pLSA的模型圖如下:
  [圖片上傳中吓笙。淑玫。。(37)]
  公式中的意義如下:
  [圖片上傳中面睛。絮蒿。。(38)]
  具體可以參考2010龍星計劃:機器學(xué)習(xí)中對應(yīng)的主題模型那一講

  LDA****:
  主題模型叁鉴,概率圖如下:
  [圖片上傳中歌径。。亲茅。(39)]
  和pLSA不同的是LDA中假設(shè)了很多先驗分布回铛,且一般參數(shù)的先驗分布都假設(shè)為Dirichlet分布狗准,其原因是共軛分布時先驗概率和后驗概率的形式相同。

  GDBT****:
  GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree)茵肃,好像在阿里內(nèi)部用得比較多(所以阿里算法崗位面試時可能會問到)腔长,它是一種迭代的決策樹算法,該算法由多棵決策樹組成验残,所有樹的輸出結(jié)果累加起來就是最終答案捞附。它在被提出之初就和SVM一起被認(rèn)為是泛化能力(generalization)較強的算法。近些年更因為被用于搜索排序的機器學(xué)習(xí)模型而引起大家關(guān)注您没。
  GBDT是回歸樹鸟召,不是分類樹。其核心就在于氨鹏,每一棵樹是從之前所有樹的殘差中來學(xué)習(xí)的欧募。為了防止過擬合,和Adaboosting一樣仆抵,也加入了boosting這一項跟继。
  關(guān)于GDBT的介紹可以可以參考:GBDT(MART) 迭代決策樹入門教程 | 簡介

  Regularization:
  作用是(網(wǎng)易電話面試時有問到):
  1. 數(shù)值上更容易求解镣丑;
  2. 特征數(shù)目太大時更穩(wěn)定舔糖;
  3. 控制模型的復(fù)雜度,光滑性莺匠。復(fù)雜性越小且越光滑的目標(biāo)函數(shù)泛化能力越強金吗。而加入規(guī)則項能使目標(biāo)函數(shù)復(fù)雜度減小,且更光滑趣竣。
  4. 減小參數(shù)空間摇庙;參數(shù)空間越小,復(fù)雜度越低期贫。
  5. 系數(shù)越小跟匆,模型越簡單,而模型越簡單則泛化能力越強(Ng宏觀上給出的解釋)通砍。
  6. 可以看成是權(quán)值的高斯先驗玛臂。

  異常檢測:
  可以估計樣本的密度函數(shù),對于新樣本直接計算其密度封孙,如果密度值小于某一閾值迹冤,則表示該樣本異常。而密度函數(shù)一般采用多維的高斯分布虎忌。如果樣本有n維泡徙,則每一維的特征都可以看作是符合高斯分布的,即使這些特征可視化出來不太符合高斯分布膜蠢,也可以對該特征進(jìn)行數(shù)學(xué)轉(zhuǎn)換讓其看起來像高斯分布堪藐,比如說x=log(x+c), x=x^(1/c)等莉兰。異常檢測的算法流程如下:
  [圖片上傳中。礁竞。糖荒。(40)]
  其中的ε也是通過交叉驗證得到的,也就是說在進(jìn)行異常檢測時模捂,前面的p(x)的學(xué)習(xí)是用的無監(jiān)督捶朵,后面的參數(shù)ε學(xué)習(xí)是用的有監(jiān)督。那么為什么不全部使用普通有監(jiān)督的方法來學(xué)習(xí)呢(即把它看做是一個普通的二分類問題)狂男?主要是因為在異常檢測中综看,異常的樣本數(shù)量非常少而正常樣本數(shù)量非常多,因此不足以學(xué)習(xí)到好的異常行為模型的參數(shù)岖食,因為后面新來的異常樣本可能完全是與訓(xùn)練樣本中的模式不同红碑。
  另外,上面是將特征的每一維看成是相互獨立的高斯分布县耽,其實這樣的近似并不是最好的句喷,但是它的計算量較小镣典,因此也常被使用兔毙。更好的方法應(yīng)該是將特征擬合成多維高斯分布,這時有特征之間的相關(guān)性兄春,但隨之計算量會變復(fù)雜澎剥,且樣本的協(xié)方差矩陣還可能出現(xiàn)不可逆的情況(主要在樣本數(shù)比特征數(shù)小,或者樣本特征維數(shù)之間有線性關(guān)系時)赶舆。
  上面的內(nèi)容可以參考Ng的https://www.coursera.org/course/ml

  EM****算法:
  有時候因為樣本的產(chǎn)生和隱含變量有關(guān)(隱含變量是不能觀察的)哑姚,而求模型的參數(shù)時一般采用最大似然估計,由于含有了隱含變量芜茵,所以對似然函數(shù)參數(shù)求導(dǎo)是求不出來的叙量,這時可以采用EM算法來求模型的參數(shù)的(對應(yīng)模型參數(shù)個數(shù)可能有多個),EM算法一般分為2步:
  E步:選取一組參數(shù)九串,求出在該參數(shù)下隱含變量的條件概率值绞佩;
  M步:結(jié)合E步求出的隱含變量條件概率,求出似然函數(shù)下界函數(shù)(本質(zhì)上是某個期望函數(shù))的最大值猪钮。
  重復(fù)上面2步直至收斂品山。
  公式如下所示:
  [圖片上傳中。烤低。肘交。(41)]
  M步公式中下界函數(shù)的推導(dǎo)過程:
  [圖片上傳中。扑馁。涯呻。(42)]
  EM算法一個常見的例子就是GMM模型凉驻,每個樣本都有可能由k個高斯產(chǎn)生,只不過由每個高斯產(chǎn)生的概率不同而已复罐,因此每個樣本都有對應(yīng)的高斯分布(k個中的某一個)沿侈,此時的隱含變量就是每個樣本對應(yīng)的某個高斯分布。
  GMM的E步公式如下(計算每個樣本對應(yīng)每個高斯的概率):
  [圖片上傳中市栗。缀拭。。(43)]
  更具體的計算公式為:
  [圖片上傳中填帽。蛛淋。。(44)]
  M步公式如下(計算每個高斯的比重篡腌,均值褐荷,方差這3個參數(shù)):
  [圖片上傳中。嘹悼。叛甫。(45)]
  關(guān)于EM算法可以參考Ng的cs229課程資料 或者網(wǎng)易公開課:斯坦福大學(xué)公開課 :機器學(xué)習(xí)課程

  Apriori:
  Apriori是關(guān)聯(lián)分析中比較早的一種方法杨伙,主要用來挖掘那些頻繁項集合其监。其思想是:
  1. 如果一個項目集合不是頻繁集合,那么任何包含它的項目集合也一定不是頻繁集合限匣;
  2. 如果一個項目集合是頻繁集合抖苦,那么它的任何非空子集也是頻繁集合;
  Aprioir需要掃描項目表多遍米死,從一個項目開始掃描锌历,舍去掉那些不是頻繁的項目,得到的集合稱為L峦筒,然后對L中的每個元素進(jìn)行自組合究西,生成比上次掃描多一個項目的集合,該集合稱為C物喷,接著又掃描去掉那些非頻繁的項目卤材,重復(fù)…
  看下面這個例子:
  元素項目表格:
  [圖片上傳中。脯丝。商膊。(46)]
  如果每個步驟不去掉非頻繁項目集,則其掃描過程的樹形結(jié)構(gòu)如下:
  [圖片上傳中宠进。晕拆。。(47)]
  在其中某個過程中,可能出現(xiàn)非頻繁的項目集实幕,將其去掉(用陰影表示)為:
  [圖片上傳中吝镣。。昆庇。(48)]
  上面的內(nèi)容主要參考的是machine learning in action這本書末贾。

  FP Growth:
  FP Growth是一種比Apriori更高效的頻繁項挖掘方法,它只需要掃描項目表2次整吆。其中第1次掃描獲得當(dāng)個項目的頻率拱撵,去掉不符合支持度要求的項,并對剩下的項排序表蝙。第2遍掃描是建立一顆FP-Tree(frequent-patten tree)拴测。
  接下來的工作就是在FP-Tree上進(jìn)行挖掘。
  比如說有下表:
  [圖片上傳中府蛇。集索。。(49)]
  它所對應(yīng)的FP_Tree如下:
  [圖片上傳中汇跨。务荆。。(50)]
  然后從頻率最小的單項P開始穷遂,找出P的條件模式基函匕,用構(gòu)造FP_Tree同樣的方法來構(gòu)造P的條件模式基的FP_Tree,在這棵樹上找出包含P的頻繁項集塞颁。
  依次從m,b,a,c,f的條件模式基上挖掘頻繁項集浦箱,有些項需要遞歸的去挖掘吸耿,比較麻煩祠锣,比如m節(jié)點,具體的過程可以參考博客:Frequent Pattern 挖掘之二(FP Growth算法)咽安,里面講得很詳細(xì)伴网。

  參考資料:
   Harrington, P. (2012). Machine Learning in Action, Manning Publications Co.
最近鄰算法(維基百科)
馬氏距離(維基百科)
   聚類(百度百科)
https://www.coursera.org/course/ml
SVD在推薦系統(tǒng)中的應(yīng)用
吳軍 and 谷歌 (2012). 數(shù)學(xué)之美, 人民郵電出版社.
2010龍星計劃:機器學(xué)習(xí) 對應(yīng)的視頻教程: 2010龍星計劃機器學(xué)習(xí)視頻教程
GBDT(MART) 迭代決策樹入門教程 | 簡介
Ng的cs229課程資料
斯坦福大學(xué)公開課 :機器學(xué)習(xí)課程
Frequent Pattern 挖掘之二(FP Growth算法)

作者:tornadomeet 出處:http://www.cnblogs.com/tornadomeet

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妆棒,隨后出現(xiàn)的幾起案子澡腾,更是在濱河造成了極大的恐慌,老刑警劉巖糕珊,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件动分,死亡現(xiàn)場離奇詭異,居然都是意外死亡红选,警方通過查閱死者的電腦和手機澜公,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喇肋,“玉大人坟乾,你說我怎么就攤上這事迹辐。” “怎么了甚侣?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵明吩,是天一觀的道長。 經(jīng)常有香客問我殷费,道長印荔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任详羡,我火速辦了婚禮躏鱼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殷绍。我一直安慰自己染苛,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布主到。 她就那樣靜靜地躺著茶行,像睡著了一般。 火紅的嫁衣襯著肌膚如雪登钥。 梳的紋絲不亂的頭發(fā)上畔师,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音牧牢,去河邊找鬼看锉。 笑死,一個胖子當(dāng)著我的面吹牛塔鳍,可吹牛的內(nèi)容都是我干的伯铣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼轮纫,長吁一口氣:“原來是場噩夢啊……” “哼腔寡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掌唾,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤放前,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后糯彬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凭语,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年撩扒,在試婚紗的時候發(fā)現(xiàn)自己被綠了似扔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虫几,靈堂內(nèi)的尸體忽然破棺而出锤灿,到底是詐尸還是另有隱情,我是刑警寧澤辆脸,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布但校,位于F島的核電站,受9級特大地震影響啡氢,放射性物質(zhì)發(fā)生泄漏状囱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一倘是、第九天 我趴在偏房一處隱蔽的房頂上張望亭枷。 院中可真熱鬧,春花似錦搀崭、人聲如沸叨粘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽升敲。三九已至,卻和暖如春轰传,著一層夾襖步出監(jiān)牢的瞬間驴党,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工获茬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留港庄,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓恕曲,卻偏偏與公主長得像鹏氧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子码俩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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

  • 注:題中所指的『機器學(xué)習(xí)』不包括『深度學(xué)習(xí)』度帮。本篇文章以理論推導(dǎo)為主,不涉及代碼實現(xiàn)稿存。 前些日子定下了未來三年左右...
    我偏笑_NSNirvana閱讀 39,911評論 12 145
  • 101.深度學(xué)習(xí)(CNN RNN Attention)解決大規(guī)模文本分類問題。 用深度學(xué)習(xí)(CNN RNN Att...
    大黃大黃大黃閱讀 13,748評論 2 42
  • 這里總結(jié)了常見的幾個機器學(xué)習(xí)算法:樸素貝葉斯瞳秽、決策樹瓣履、邏輯回歸、線性回歸练俐、KNN袖迎、SVM、Boosting、聚類燕锥、...
    xzhren閱讀 894評論 0 6
  • 某生宇者辜贵,乃吾一未蒙面之友,僅通信往來归形。與吾交談數(shù)次托慨,其語言頗具意味。這里撮錄一兩篇來暇榴,以供諸位評讀厚棵。 先生: 吾...
    小兵001閱讀 354評論 0 0
  • 房到用時才顯小啊。 昨天蔼紧,僧哥從老家?guī)Щ亓撕枚鄸|西婆硬,到家才發(fā)現(xiàn)原來家里壓根沒有這些東西的立足之地。胡亂塞在客廳里就...
    Lufeewang閱讀 507評論 0 0