数据挖掘算法_数据挖掘算法入门
有南方的朋友講過北方人喜歡打比方,尤其是甲方的,其實也沒什么不好了。如果是做菜的話,那么這些算法就相當于烹飪的工具了。對原始的食材進行預處理、加工整合,選擇合適烹飪工具,以及對應的方法步驟,最后收獲舌尖上的美味,標準化的美味挖掘過程。
文章內容都是摘抄的,如果要體現主觀能動性的話,那就是算法的選擇和排序了,僅此而已。器在道先,先器后道。
1樸素貝葉斯
樸素貝葉斯分類法是統計學分類方法,在特征條件獨立性假定下,基于貝葉斯定理計算預測類隸屬關系的概率進行分類。樸素貝葉斯分類器有著堅實的數學基礎和穩定的分類效率,同時分類模型所需估計的參數很少,對缺失數據不太敏感,算法也比較簡單。理論上樸素貝葉斯分類模型與其他分類方法相比具有最小的誤差率,但是實際上并非總是如此。這是因為樸素貝葉斯分類模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給模型的正確分類帶來了一定影響。
2決策樹
決策樹是一種類似于流程圖的樹結構,其中,每個內部節點表示在一個屬性上的測試,每個分支代表該測試的一個輸出,每個葉節點表示存放一個類標號,頂層節點是根節點。在決策樹構造時,使用屬性選擇度量來選擇將元組最好地劃分成不同的類的屬性。決策樹建立時,許多分枝可能反映訓練數據中的噪聲或離群點,使用樹剪枝識別并剪去這種分枝,以提高泛化性。
常用的決策樹模型有ID3、C4.5和CART,它們都采用貪心方法,用自頂向下遞歸的分治方式構造決策樹;各算法間差別在于創建樹時如何選擇屬性和剪枝機制。
3K最近鄰分類
K最近鄰分類算法(KNN)的核心思想是,如果一個樣本在特征空間中的K個最相鄰的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。該方法在確定分類決策上,只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。KNN方法在類別決策時,只與極少量的相鄰樣本有關。由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
KNN算法不僅可以用于分類,還可以用于回歸。通過找出一個樣本的K個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的鄰居對該樣本產生的影響給予不同的權值,如權值與距離成反比。
4神經網絡
4.1人工神經網絡
人工神經網絡是模仿生理神經網絡的結構和功能而設計的一種信息處理系統。它從信息處理角度對人腦神經元網絡進行抽象,建立某種簡單模型,按不同的連接方式組成不同的網絡。大量的人工神經元以一定的規則連接成神經網絡,神經元之間的連接及各連接權值的分布用來表示特定的信息。神經網絡分布式存儲信息,具有很高的容錯性。每個神經元都可以獨立的運算和處理接收到的信息并輸出結果,網絡具有并行運算能力,實時性非常強。神經網絡對信息的處理具有自組織、自學習的特點,便于聯想、綜合和推廣。
4.2深度學習
深度學習源于人工神經網絡的研究,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據。深度學習模型結構是含多隱層的多層感知器,通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示。
深度學習的概念由Hinton等人于2006年提出?;谏疃戎眯啪W絡(DBN)提出非監督貪心逐層訓練算法,為解決深層結構相關的優化難題帶來希望,隨后提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。
深度學習涉及相當廣泛的機器學習技術和結構,根據這些結構和技術應用的方式,可以將其分成如下三類:
a) 生成性深度結構。該結構描述數據的高階相關特性,或觀測數據和相應類別的聯合概率分布。
b) 區分性深度結構。目的是提供對模式分類的區分性能力,通常描述數據的后驗分布。
c) 混合型結構。它的目標是區分性的, 但通常利用了生成型結構的輸出會更易優化。
5 支持向量機
支持向量機(Support Vector Machine,SVM) 算法是經典的機器學習算法之一,無論在理論分析還是實際應用中都已取得很好的成果。SVM算法由Vapnik和Chervonenkis共同提出,其理論基礎是Vapnik提出的“結構風險最小化"原理。SVM算法泛化能力很強,在解決很多復雜問題時有很好的表現。例如,為滿足美國郵政服務局利用手寫郵政編碼進行自動分類郵件的需要,Boser和Guyon等人用SVM對手寫體阿拉伯數字進行了識別。Osuna E和Freund R提出了基于SVM的面部識別方法。Joachims等應用SVM對路透社新聞故事數據集進行了文本分類等等。除了數據分類方面應用,SVM逐漸被推廣到回歸分析、多種背景的模式識別、數據挖掘、函數逼近擬合、醫學診斷等眾多領域。如今,SVM已成為機器學習的主要研究方向之一,它所代表的統計學習理論也必將帶來機器學習領域一場深刻變革。
SVM的思想源于線性學習器,即Rosenblatt感知機。感知機可以將線性可分的兩種不同類型的樣例自動劃分為兩類。如果這兩類樣例不是線性可分的,則可以使用核函數方法,將實驗對象的屬性表達在高維特征空間上,并由最優化理論的學習算法進行訓練,實現由統計學習理論推導得出的學習偏置,從而達到分類的效果,這就是SVM的基本思路。
6 集成學習
6.1隨機森林
隨機森林是利用多棵樹對樣本進行訓練并預測的一種分類器。簡單來說隨機森林就是由多棵CART(Classification And Regression Tree)構成的。對于每棵樹,它們使用的訓練集是從總的訓練集中有放回采樣出來的,這意味著總的訓練集中的有些樣本可能多次出現在一棵樹的訓練集中,也可能從未出現在一棵樹的訓練集中。在訓練每棵樹的節點時,使用的特征是從所有特征中按照一定比例隨機地無放回的抽取的。
6.2GBDT(Gradient Boost DecisionTree)
GBDT是一個應用很廣泛的算法,可以用來做分類、回歸。在很多的數據上都有不錯的效果。GradientBoost其實是一個框架,里面可以套入很多不同的算法。Boost是"提升"的意思,一般Boosting算法都是一個迭代的過程,每一次新的訓練都是為了改進上一次的結果。
原始的Boost算法是在算法開始的時候,為每一個樣本賦上一個權重值,初始的時候,大家都是一樣重要的。在每一步訓練中得到的模型,會使得數據點的估計有對有錯,就在每一步結束后,增加分錯的點的權重,減少分對的點的權重,這樣使得某些點如果老是被分錯,那么就會被“嚴重關注”,也就被賦上一個很高的權重。然后等進行了N次迭代(由用戶指定),將會得到N個簡單的基礎分類器,然后將它們組合起來(比如說可以對它們進行加權、或者讓它們進行投票等),得到一個最終的模型。
而Gradient Boost與傳統的Boost的區別是,每一次的計算是為了減少上一次的殘差(residual),而為了消除殘差,可以在殘差減少的梯度(Gradient)方向上建立一個新的模型。所以說,在Gradient Boost中,每個新的模型的簡歷是為了使得之前模型的殘差往梯度方向減少,與傳統Boost對正確、錯誤的樣本進行加權有著很大的區別。
6.3 Adaboost
Adaboost 是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。其算法本身是通過改變數據分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最后將每次訓練得到的分類器最后融合起來,作為最后的決策分類器。使用Adaboost分類器可以排除一些不必要的訓練數據特徵,并將關鍵放在關鍵的訓練數據上面。
目前,對 Adaboost算法的研究以及應用大多集中于分類問題,同時近年也出現了一些在回歸問題上的應用。就其應用 Adaboost系列主要解決了: 兩類問題、多類單標簽問題、多類多標簽問題、大類單標簽問題,回歸問題。
該算法其實是一個簡單的弱分類算法提升過程,這個過程通過不斷的訓練,可以提高對數據的分類能力。
7聚類
聚類分析又稱數值分類,聚類分析將個體或對象分類,使得同一類中的對象之間相似性比其他類的對象相似性更強,即使得類間對象的同質性最大化和類間對象異質性最大化。
設已知N個觀測值X1,X2,…,Xn,每個觀測值是一個p維向量。聚類分析的思想是將每個觀測值Xi看成p維空間的一個點,在p維空間中引入“距離”的概念,則可按各點間距離的遠近將各點(觀測值)歸類。若要對 p個變量(即指標)進行分類,常定義一種“相似系數”來衡量變量之間的親密程度,按各變量之間相似系數的大小可將變量進行分類。根據實際問題的需要和變量的類型,對距離和相似系數有不同的定義方法。
8 頻繁模式、關聯和相關性挖掘
l Apriori:
Apriori 算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基于兩階段頻集思想的遞推算法。該關聯規則在分類上屬于單維、單層、布爾關聯規則。在這里,所有支持度大于最小支持度的項集稱為頻繁項集,簡稱頻集。
Apriori 演算法所使用的前置統計量包括了:
?最大規則物件數:規則中物件組所包含的最大物件數量
?最小支援:規則中物件或是物件組必頇符合的最低案例數
?最小置信水準:計算規則所必須符合的最低置信水準門檻
該算法的基本思想是:首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支持度一樣。然后由頻集產生強關聯規則,這些規則必須滿足最小支持度和最小可信度。然后使用第1步找到的頻集產生期望的規則,產生只包含集合的項的所有規則,其中每一條規則的右部只有一項,這里采用的是中規則的定義。一旦這些規則被生成,那么只有那些大于用戶給定的最小可信度的規則才被留下來。為了生成所有頻集,使用了遞推的方法。
9最大期望(EM)算法
在統計計算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中尋找參數最大似然估計的算法,其中概率模型依賴于無法觀測的隱藏變量(Latent Variable)。最大期望經常用在機器學習和計算機視覺的數據集聚(DataClustering)領域。最大期望算法經過兩個步驟交替進行計算,第一步是計算期望(E),也就是將隱藏變量象能夠觀測到的一樣包含在內從而計算最大似然的期望值;另外一步是最大化(M),也就是最大化在 E 步上找到的最大似然的期望值從而計算參數的最大似然估計。 M 步上找到的參數然后用于另外一個 E 步計算,這個過程不斷交替進行。
10 PageRank
在PageRank提出之前,已經有研究者提出利用網頁的入鏈數量來進行鏈接分析計算,這種入鏈方法假設一個網頁的入鏈越多,則該網頁越重要。早期的很多搜索引擎也采納了入鏈數量作為鏈接分析方法,對于搜索引擎效果提升也有較明顯的效果。PageRank除了考慮到入鏈數量的影響,還參考了網頁質量因素,兩者相結合獲得了更好的網頁重要性評價標準。
對于某個互聯網網頁A來說,該網頁PageRank的計算基于以下兩個基本假設:
數量假設:在Web圖模型中,如果一個頁面節點接收到的其他網頁指向的入鏈數量越多,那么這個頁面越重要。
質量假設:指向頁面A的入鏈質量不同,質量高的頁面會通過鏈接向其他頁面傳遞更多的權重。所以越是質量高的頁面指向頁面A,則頁面A越重要。
利用以上兩個假設,PageRank算法剛開始賦予每個網頁相同的重要性得分,通過迭代遞歸計算來更新每個頁面節點的PageRank得分,直到得分穩定為止。 PageRank計算得出的結果是網頁的重要性評價,這和用戶輸入的查詢是沒有任何關系的,即算法是主題無關的。假設有一個搜索引擎,其相似度計算函數不考慮內容相似因素,完全采用PageRank來進行排序,那么這個搜索引擎的表現是什么樣子的呢?這個搜索引擎對于任意不同的查詢請求,返回的結果都是相同的,即返回PageRank值最高的頁面。
11其他常用算法
a. 推薦算法
推薦算法大致可以分為三類:基于內容的推薦算法、協同過濾推薦算法和基于知識的推薦算法。
基于內容的推薦算法,原理是用戶喜歡和自己關注過的Item在內容上類似的Item,與以前觀看的在內容上面(共有很多關鍵詞)有很大關聯性,就把后者推薦給你,這種方法可以避免Item的冷啟動問題(冷啟動:如果一個Item從沒有被關注過,其他推薦算法則很少會去推薦,但是基于內容的推薦算法可以分析Item之間的關系,實現推薦),弊端在于推薦的Item可能會重復,另外對于一些多媒體的推薦(比如音樂、電影、圖片等)由于很難提內容特征,則很難進行推薦,一種解決方式則是人工給這些Item打標簽。
協同過濾算法,原理是用戶喜歡那些具有相似興趣的用戶喜歡過的商品,還有一種是基于Item的協同過濾算法(item-based collaborative filtering),這兩種方法都是將用戶的所有數據讀入到內存中進行運算的,因此成為Memory-based Collaborative Filtering,另一種則是Model-basedcollaborative filtering,包括Aspect Model,pLSA,LDA,聚類,SVD,Matrix Factorization等,這種方法訓練過程比較長,但是訓練完成后,推薦過程比較快。
最后一種方法是基于知識的推薦算法,也有人將這種方法歸為基于內容的推薦,這種方法比較典型的是構建領域本體,或者是建立一定的規則,進行推薦。
b. 社區發現
社區現象是復雜網絡中的一種普遍現象,表達了多個個體具有的共同體特性。社區的發現技術,從最初的圖分割方法、W-H算法、層次聚類法、GN算法等基本算法,逐漸發展和改進,形成了包括改進GN算法、派系過濾算法、局部社區算法和web社區發現方法在內的更具可操作性的方法。網絡的社區發現可為個性化服務、信息推送等提供基本數據,尤其是在信息時代,社區的存在更加普遍,發現技術應用更加方便,其商業價值和服務價值更大。
社區發現問題目前并沒有一個明確的定義,根據一般算法流程,大致可以描述為這樣一個問題:將一個網絡分割成若干個由緊密相連節點構成的社區,而分屬不同社區的節點間的聯系則相對松散。社區發現算法往往面臨著兩大難點,其一是網絡中社區的個數、大小都是不確定的,社區發現往往是一種無監督的聚類算法,算法的終止依賴于數學上的收斂;其二無論是社交網絡還是電信網絡,網絡規模和復雜度較高,一個用戶又往往分屬多個社區,構成重疊型社區(Overlapping Community),更增添了社區發現的難度。目前社區發現算法存在許多流派,每類算法又會衍生出許多改進算法,其計算復雜度和應用場景也不盡相同。
參考文獻
1. BRINS, PAGE L 1998. The anatomy of a large-scale hypertextual Web search engine [C]//; City. 107-117.
2. BURGESC J C 1998. A Tutorial on Support Vector Machines for Pattern Recognition. DataMining and Knowledge Discovery [J], 2: 121.
3. DANZ 2008. Data Mining Applications in the Banking Industry in China (1998-2007)[C] //, IEEE; City. 240-243.
4. FAYYADU, PIATETSKYSHAPIRO G, SMYTH P 1996. From data mining to knowledge discovery indatabases. Ai Magazine [J], 17: 37-54.
5. HANJ, KAMBER M 2000. Data Mining: Concepts and Techniques [M]. Morgan Kaufmann.
6. HORMOZIA M, GILES S 2004. Data mining: A competitive weapon for banking and retailindustries. Information Systems Management [J], 21: 62-71.
7. LECUNY, BENGIO Y, HINTON G 2015. Deep learning. Nature [J], 521: 436-444.
8. MIKUTR, REISCHL M 2011. Data mining tools. Wiley Interdisciplinary Reviews: DataMining and Knowledge Discovery [J], 29: 102-118.
9. PEDREGOSAF, VAROQUAUX G, GRAMFORT A, et al. 2012. Scikit-learn: Machine Learning inPython. Journal of Machine Learning Research [J], 12: 2825-2830.
10. SCHMIDHUBERJ 2015. Deep Learning in neural networks: An overview. Neural Networks [J], 61:85-117.
11. TANP, STEINBACH M, KUMAR V 2005. Introduction to data mining [M]. Addison Wesley;Boston, MA, USA.
12. VAPNIKV N 1998. Statistical learning theory [M]. Wiley-Interscience; New York.
13. WEISSG M 2004. Mining with rarity: a unifying framework. ACM SIGKDD ExplorationsNewsletter [J], 6: 7-19.
14. WUX D, KUMAR V, QUINLAN J R, et al. 2008. Top 10 algorithms in data mining.Knowledge and Information Systems [J], 14: 1-37.
15. 其他互聯網文章.
總結
以上是生活随笔為你收集整理的数据挖掘算法_数据挖掘算法入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: reg型变量怎么赋值_UiPath变量的
- 下一篇: 人工神经网络理论、设计及应用_Tenso