1. 程式人生 > >大資料演算法 十大經典演算法

大資料演算法 十大經典演算法

一、C4.5 C4.5,是機器學習演算法中的一個分類決策樹演算法, 它是決策樹(決策樹也就是做決策的節點間的組織方式像一棵樹,其實是一個倒樹)核心演算法 ID3的改進演算法,所以基本上了解了一半決策樹構造方法就能構造它。 決策樹構造方法其實就是每次選擇一個好的特徵以及分裂點作為當前節點的分類條件。 C4.5相比於ID3改進的地方有: 1、用資訊增益率來選擇屬性。 ID3選擇屬性用的是子樹的資訊增益,這裡可以用很多方法來定義資訊,ID3使用的是熵(entropy,熵是一種不純度度量準則), 也就是熵的變化值. 而C4.5用的是資訊增益率。對,區別就在於一個是資訊增益,一個是資訊增益率。 一般來說率就是用來取平衡用的,就像方差起的作用差不多, 比如有兩個跑步的人,一個起點是10m/s的人、其10s後為20m/s; 另一個人起速是1m/s、其1s後為2m/s。 如果緊緊算差值那麼兩個差距就很大了,如果使用速度增加率(加速度,即都是為1m/s^2)來衡量,2個人就是一樣的加速度。 因此,C4.5克服了ID3用資訊增益選擇屬性時偏向選擇取值多的屬性的不足。 2、在樹構造過程中進行剪枝,在構造決策樹的時候,那些掛著幾個元素的節點,不考慮最好,不然容易導致overfitting。 3、對非離散資料也能處理。 4、能夠對不完整資料進行處理。 二、The k-means algorithm 即K-Means演算法
k-means algorithm演算法是一個聚類演算法,把n的物件根據他們的屬性分為k個分割(k < n)。 它與處理混合正態分佈的最大期望演算法(本十大演算法第五條)很相似,因為他們都試圖找到資料中自然聚類的中心。 它假設物件屬性來自於空間向量,並且目標是使各個群組內部的均方誤差總和最小。 三、 Support vector machines 支援向量機,英文為Support Vector Machine,簡稱SV機(論文中一般簡稱SVM)。 它是一種監督式學習的方法,它廣泛的應用於統計分類以及迴歸分析中。 支援向量機將向量對映到一個更高維的空間裡,在這個空間裡建立有一個最大間隔超平面。 在分開資料的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。 假定平行超平面間的距離或差距越大,分類器的總誤差越小。 一個極好的指南是C.J.C Burges的《模式識別支援向量機指南》。 van der Walt 和 Barnard 將支援向量機和其他分類器進行了比較。 四、The Apriori algorithm
Apriori演算法是一種最有影響的挖掘布林關聯規則頻繁項集的演算法。 其核心是基於兩階段頻集思想的遞推演算法。 該關聯規則在分類上屬於單維、單層、布林關聯規則。 在這裡,所有支援度大於最小支援度的項集稱為頻繁項集,簡稱頻集。 五、最大期望(EM)演算法 在統計計算中,最大期望 (EM,Expectation–Maximization)演算法是在概率 (probabilistic)模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。 最大期望經常用在機器學習和計算機視覺的資料集聚(Data Clustering)領域。 六、 PageRank
PageRank是Google演算法的重要內容。2001年9月被授予美國專利,專利人是Google創始人之一拉里•佩奇(Larry Page)。 因此,PageRank裡的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。 PageRank根據網站的外部連結和內部連結的數量和質量,衡量網站的價值。 PageRank背後的概念是,每個到頁面的連結都是對該頁面的一次投票,被連結的越多,就意味著被其他網站投票越多。 這個就是所謂的“連結流行度”——衡量多少人願意將他們的網站和你的網站掛鉤。 PageRank這個概念引自學術中一篇論文的被引述的頻度——即被別人引述的次數越多,一般判斷這篇論文的權威性就越高。 七、AdaBoost Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器), 然後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。 其演算法本身是通過改變資料分佈來實現的,它根據每次訓練集之中每個樣本的分類是否正確, 以及上次的總體分類的準確率,來確定每個樣本的權值。 將修改過權值的新資料集送給下層分類器進行訓練,最後將每次訓練得到的分類器融合起來,作為最後的決策分類器。 八、 kNN: k-nearest neighbor classification K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。 該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的 大多數屬於某一個類別,則該樣本也屬於這個類別。 九、 Naive Bayes 在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和 樸素貝葉斯模型(Naive Bayesian Model,NBC)。  樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。 同時,NBC模型所需估計的引數很少,對缺失資料不太敏感,演算法也比較簡單。 理論上,NBC模型與其他分類方法相比具有最小的誤差率。 但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中 往往是不成立的,這給NBC模型的正確分類帶來了一定影響。在屬性個數比較多或者屬性之 間相關性較大時,NBC模型的分類效率比不上決策樹模型。 而在屬性相關性較小時,NBC模型的效能最為良好。 十、 CART: 分類與迴歸樹 CART, Classification and Regression Trees。在分類樹下面有兩個關鍵的思想:第一個 是關於遞迴地劃分自變數空間的想法;第二個想法是用驗證資料進行剪枝。