常用数据挖掘算法简介
1.樸素貝葉斯
?
樸素貝葉斯分類法是統計學分類方法,在特征條件獨立的前提下,基于貝葉斯定理計算的隸屬關系概率進行分類。
樸素貝葉斯分類有著堅實的數學基礎和穩定的分類效率,同時,分類模型需要估計的參數很少,對缺失數據不太敏感,算法也比較簡單。
從理論上講,樸素貝葉斯分類模型與其他分類方法相比的誤差率最小,但是實際上并非總是如此,這是因為樸素貝葉斯分類模型假設各屬性之間相互獨立,然而這個假設在實際應用中往往是不成立的,因此,這在一定程度上影響了模型的正確分類。
?
2.決策樹
?
決策樹是一種類似于流程圖的樹結構。其中,每個內部節點代表在一個屬性上的測試,每個分支代表該測試的一個輸出,每個葉節點代表存放一個類標號,頂層節點是根節點。
在構造決策樹時,使用屬性選擇度量來選擇將元組劃分成不同的類的屬性。決策樹中的許多分枝可能反映訓練數據中的噪聲或離群點,使用剪枝識別來減去是這種分枝,以提高泛化性。
常用的決策樹模型包括ID3、C4.5和CART。它們都采用自上到下遞歸的分枝方式構造決策樹,各算法之間的差別在于創建決策樹時如何選擇屬性和剪枝機制。
?
3.K最近鄰分類
?
K最近鄰分類算法(KNN)的核心思想是,如果一個樣本在特征空間中的K歌最相鄰的樣本中大多數屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。
該方法在確定分類決策上只依據最近鄰的一個或者幾個樣本的類別來決定待分樣本所屬的類別。KNN算法在類別決策時只與極少量的相鄰樣本有關。
由于KNN方法主要靠周圍有限的鄰近樣本,而不是靠判別類域的方法來確定所屬類別,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN算法較其他方法更為合適。
KNN算法不僅可以用于分類,還可以用于回歸。通過找到一個樣本的K個最近鄰居,將這些鄰居的屬性的平均值賦予該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的鄰居對該樣本產生的影響設定不同的權重,權重與距離成反比。
?
4.神經網絡
?
4.1人工神經網絡
人工神經網絡是模仿生理神經網絡的結構和功能設計的一種信息處理系統。它從信息處理角度對人腦神經元網絡進行抽象,建立某種簡單模型,按不同的連接方式組成不同的網絡。
大量的人工神經元以一定的規則連接成神經網絡,神經元之間的連接以及各連接的權重表示特定的信息。
神經網絡分布式存儲信息,具有很高的容錯性。每個神經元都可以進行獨立運算、處理接收信息并輸出結果,同時,神經網絡具有并行運算能力,實時性很強。
神經網絡對信息處理具有自組織、自學習的特點,便于聯想、綜合和推廣。
?
4.2深度學習
深度學習源于人工神經網絡的研究,其目的在于建立能夠模人腦進行分析學習的神經網絡,并模仿人腦的工作機制來解釋數據。
深度學習模型結構是含有多個隱層的多層感知器,它通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示。
深度學習的概念由Hinton等人于2006年提出,是基于深度置信網絡(DBN)提出的非監督貪心逐層訓練算法,目的是解決深層結構相關的優化問題。隨后,他們又提出了多層自動編碼器深層結構。
此外,Lecun等人提出的卷積神經網絡(CNN)是第一個真正多層結構的學習算法,它利用空間相對關系來減少參數的數量,從而提高訓練性能。
深度學習涉及相當廣泛的機器學習技術和結構,根據這些結構和技術應用的方式,可以將其分成如下三類:
生成型深度結構。該結構描述數據的高階相關特性或觀測數據和相應類別的聯合概率分布;
區分型深度結構。目的是提供對模式分類的區分性能力,通常描述數據的后驗分布;
混合型結構。它的目標是區分性的,但通常利用生成型結構的輸出更易優化。
5.支持向量機
支持向量機(Support Vector Machine,SVM)算法是經典的機器學習算法之一,無論在理論分析還是實際應用中都已取得了很好的成果。
SVM算法由Vapnik和Chervonenkis共同提出,其理論基礎是Vapnik提出的“結構風險最小化”原理。
SVM算法泛化能力很強,在解決很多復雜問題時有很好的表現。例如,為滿足美國郵政服務局利用手寫郵政編碼進行郵件自動分類的需要,Boser和Guyon等人利用SVM算法對手寫阿拉伯數字進行了識別。
后來,Osuna E和Freund R提出了基于SVM的面部識別方法。Joachims等利用SVM算法實現了對路透社新聞故事數據集的文本分類。
除了數據分類,SVM逐漸被應用于回歸分析、多種背景的模式識別、數據挖掘、函數逼近擬合、醫學診斷等多個領域。
如今,SVM已成為機器學習領域的主要研究方向之一,它所代表的統計學理論也必將帶來機器學習領域的一場深刻變革。
SVM算法的思想源于線性學習器,即Rosenblatt感知機。感知機可以將線性可分的兩種不同類型的樣例自動劃分為兩類。
如果這兩類樣例不是線性可分的,就可以用核函數方法將實驗對象的屬性表達于高維特征向量中并由最優化理論的學習算法進行訓練,實現由統計學理論推導得出的學習偏置,從而達到分類的效果。
6.集成學習
6.1隨機森林
隨機森林(Random Forest)是利用多棵樹對樣本進行訓練并預測的一種分類器。簡單地說,隨機森林就是由多棵CART(Classification and Regression Tree)構成的。
對于每棵樹而言,它們使用的訓練集是從總的訓練集中通過有放回采樣得到的,這意味著總的訓練集中的有些樣本可能會多次出現于一棵樹的訓練集中,也可能從未出現于一棵樹的訓練集中。
在訓練每棵樹的節點時,使用的特征是從所有特征中按照一定比例通過無放回隨機抽樣方法獲得的。
?
6.2GBDT
梯度提升決策樹(Gradient Boost Decision Tree,GBDT)的應用很廣泛,可用來進行分類和回歸,并表現出了很好的效果。
梯度提升(Gradient Boost)是一個框架,里面可以嵌入很多不同的算法,Boost指的是提升,Boosting算法一般都包括迭代過程,每一次新的訓練都是為了改進上一次的結果。
原始的Boost算法是在算法開始的時候,為每一個樣本賦予一個相同的權重。也就是說,開始的時候,每個樣本同樣重要。
在每一步模型訓練時,通過結果發現數據點的估計有對有錯,那么,就在訓練結束時,增加分錯的點的權重,減少分對的點的權重。如果某些點老是被分錯,那么就會被賦予一個很高的權重。
在N次迭代之后,就得到了N個簡單的基礎分類器,將它們組合起來就得到了一個最終分類模型,比如通過加權方法。
Gradient Boost與傳統Boost的區別是,每一次訓練是為了減少上一次的殘差(residual)。為了消除殘差,可以在殘差減少的梯度方向上建立一個新的模型。
因此,在Gradient Boost中,建立新的模型是為了使之前模型的殘差朝著梯度方向減少,這與傳統Boost單純增加錯誤權重、減少正確權重有很大的區別。
?
6.3AdaBoost
AdaBoost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。
AdaBoost算法是通過改變數據分布來實現的,根據每次訓練集中每個樣本的分類是否正確,以及前次總體分類準確率,來確定每個樣本的權重。
接著,將修改過權重的新數據集送入下層分類器進行訓練,最后,將每次訓練得到的分類器融合起來,得到最終的決策分類器。
使用AdaBoost分類器可以排除一些不惜要的訓練數據特征,并將關注點放在關鍵的訓練數據上。
目前,AdaBoost的研究和應用集中于分類問題上,近年來也出現了一些在回歸問題上的應用。AdaBoost算法主要解決了兩類問題、多類單標簽問題、多類多標簽問題、單類單標簽問題、回歸問題,等等。
?
7.聚類
聚類分析又叫“數值分類”,指的是將個體或對象分類,使得同一類中對象之間的相似性最大,類間對象的差異性最大。
設已知N個觀測值X1,X2,…Xn,每個觀測值是一個p維向量。聚類分析的思想是將每個觀測值Xi看成p維空間的一個點,在p維空間中引入“距離”的概念,則可按照各點間距離的遠近將各點歸類。
如果對p個變量進行分類,常常定義一種“相似系數”來衡量變量之間的聯系緊密程度,按各變量之間的相似系數大小將變量進行分類。
根據實際問題需求和變量類型,對距離和相似系數有不同的定義方法。
?
8.頻繁模式、關聯和相關性挖掘
Apriori
Apriori算法是一種最有影響力的挖掘布爾關聯規則頻繁項集的算法。其核心是基于兩階段頻集思想的遞推算法。
關聯規則在分類樹行屬于單維、單層、布爾關聯規則。所有支持度大魚最小支持度的項集稱為“頻繁項集”,簡稱“頻集”。
Apriori演算法所使用的前置統計量包括了:
最大規則物件數:規則中物件所包含的最大物件數量
最小支援:規則中物件或是物件組必須符合的最低案例數
最小置信水準:計算規則所必須符合的最低置信水準門檻
該算法的基本思想是首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支持度一致,然后由頻集產生強關聯規則。這些規則必須滿足最小支持度和最小可信度。
接著,使用第一步找到的頻集所產生期望的規則,產生只包含集合的項的所有規則,其中每一條規則的右部只有一項,這里采用的是中規則的定義。
一旦這些規則生成,那么只有那些大于用戶給定最小可信度的規則才能留下來。為了生成所有頻集,使用了遞推的方法。
?
9.最大期望(EM)算法
在統計計算中,最大期望(Expectation-Maximization)算法是在概率(probalilistic)模型中尋找參數最大似然估計的算法,其中概率模型依賴于無法觀測的隱藏變量(Latent Variable)。
最大期望經常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。最大期望算法經過兩個步驟交替進行計算,第一步是計算期望(E),也就是將隱藏變量項能夠觀測到的一樣包含在內,從而計算最大似然的期望值;另一步是最大化(M),也就是最大化在計算E時找到的最大似然的期望值,從而計算參數的最大似然估計。接著,將計算出的參數應用于另一個E的計算,不斷交替進行。
?
10.PageRank
在提出PageRank之前,已經有研究者提出利用網頁入鏈數量進行鏈接分析計算,這種入鏈方法假設一個網頁的入鏈越多,網頁越重要。
早期的很多搜索引擎也采納了入鏈數量作為鏈接分析方法,對于搜索引擎效果提升也有較明顯的效果。
PageRank除了考慮入鏈數量的影響,還參考了網頁質量因素,兩者結合獲得了更好地網頁重要性評價標準。
對于某個互聯網網頁來說,該網頁的PageRank計算基于以下兩個基本假設:
數量假設:在Web圖模型中,如果一個頁面節點接收到的其他網頁指向的入鏈數量越多,那么這個頁面越重要。
質量假設:指向該頁面的入鏈質量不同,質量高的頁面會通過鏈接向其他頁面傳遞更多權重。所以越是質量高的頁面指向頁面A,頁面A就越重要。
基于以上兩個假設,PageRank算法剛開始賦予每個頁面相同的重要性得分,通過迭代遞歸計算來更新每個頁面節點的PageRank得分,直到得分穩定為止。
PageRank計算得出的結果是網頁的重要性評價,這與用戶輸入的查詢是沒有任何關系的,即算法是與主題無關的。
假設有一個搜索引擎,其相似度計算函數不考慮內容相似因素,完全采用PageRank進行排序,那么這個搜索引擎的表現會是什么樣子呢?
這個搜索引擎對于任意不同的查詢請求,返回的結果都是相同的,即返回PageRank值最高的頁面。
?
11.其他常用算法
11.1推薦算法
推薦算法大致可以分為三類:基于內容的推薦算法、協同過濾推薦算法和基于知識的推薦算法。
基于內容的推薦算法,原始是根據用戶喜歡或關注過的item尋找內容類似的item,如果這些item在內容上與以前觀看的頁面有很大關聯,比如有相同的關鍵詞,就把這些item推薦給用戶。
這種方法可以避免item的冷啟動(如果一個item從未被關注過,其他算法則很少推薦這個item,但是基于內容的推薦算法分析item之間的關聯,可以實現對這類item的推薦)問題。
不過,這種方法也會有很多弊端,比如推薦的item可能會重復,另外,由于一些多媒體內容(比如音樂、電影、圖片等)很難從中提取特征,因此很難推薦。對于這類內容,其中一種解決方式就是人工給這些item打上標簽。
協同過濾算法(Collaborative Filtering),一種是將用戶所有數據讀入內容中進行運算,稱為基于記憶的協同過濾算法(Memory-based Collaborative Filtering),一種是基于模型的協同過濾算法(Model-based Collaborative Filtering),包括Aspect Model、pLSA、LDA、聚類、SVD、Matrix Factorization等。這種方法的訓練過程比較長,但是完成訓練后,推薦過程比較快。
基于知識的推薦方法,也可以歸為基于內容的推薦。這種方法比較典型的操作是構建領域本體,或者建立一定的規則進行推薦。
11.2社區發現
社區現象是復雜網絡中的一種普遍現象,表達了多個個體具有的共同體特性。社區的發現技術,從最初的圖分割方法、W-H算法、層次聚類法、GN算法等基本算法,逐漸發展和改進,形成了包括改進GN算法、派系過濾算法、局部社區算法和web社區發現方法在內的根據可操作性的方法。網絡的社區發現可分為個性化服務、信息推送等提供基本數據的服務,在信息時代,社區的存在更加普遍,發現技術應用也更加方便,商業價值和服務價值也更大。
社區發現問題并沒有一個明確地定義,根據一般算法流程,大致可以描述為這樣一個問題:講一個網絡分割成若干個由緊密相連節點構成的社區,而分屬不同社區的節點間的聯系相對松散。
社區發現算法往往面臨兩大難點,一個是網絡中社區的個數、大小都是不確定的,社區發現往往是一種無監督的聚類算法,算法的終止依賴于數學上的收斂;一個是社交網絡和電信網絡的規模和復雜度都較高,一個用戶又往往分屬多個社區,構成重疊型社區(Overlapping Community),更增添了社區發現的難度。
?
總結
以上是生活随笔為你收集整理的常用数据挖掘算法简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 风控大咖教你四步开发风控模型
- 下一篇: 深度解析两种信用评估模型