機器學習 | 算法總結

前言

本系列爲機器學習算法的總結和概括,目的爲了清晰闡述算法原理,同時附帶上手代碼實例,便於理解。

目錄

   決策樹
   線性迴歸
   K-Means
 
本章總結十大算法,並附帶經典算法Python和R實現邏輯。

1、C4.5

C4.5,是機器學習算法中的一個分類決策樹算法,
它是決策樹(決策樹也就是作決策的節點間的組織方式像一棵樹,實際上是一個倒樹)核心算法
ID3的改進算法,因此基本上了解了一半決策樹構造方法就能構造它。
決策樹構造方法其實就是每次選擇一個好的特徵以及分裂點做爲當前節點的分類條件。html

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.可以對不完整數據進行處理。

2、The k-means algorithm 即K-Means算法

k-means algorithm算法是一個聚類算法,把n的對象根據他們的屬性分爲k個分割(k < n)。它與處理混合正態分佈的最大指望算法(本十大算法第五條)很類似,由於他們都試圖找到數據中天然聚類的中心。
它假設對象屬性來自於空間向量,而且目標是使各個羣組內部的均方偏差總和最小。機器學習

3、 Support vector machines

支持向量機,英文爲Support Vector Machine,簡稱SV機(論文中通常簡稱SVM)。性能

它是一種監督式學習的方法,它普遍的應用於統計分類以及迴歸分析中。
支持向量機將向量映射到一個更高維的空間裏,在這個空間裏創建有一個最大間隔超平面。在分開數據的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總偏差越小。學習

一個極好的指南是C.J.C Burges的《模式識別支持向量機指南》。van der Walt 和 Barnard 將支持向量機和其餘分類器進行了比較。網站

4、The Apriori algorithm

Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基於兩階段頻集思想的遞推算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這裏,全部支持度大於最小支持度的項集稱爲頻繁項集,簡稱頻集spa

5、最大指望(EM)算法

在統計計算中,最大指望 (EM,Expectation–Maximization)算法是在機率(probabilistic)模型中尋找參數最大似然估計的算法,其中機率模型依賴於沒法觀測的隱藏變量(Latent Variabl)。rest

最大指望常常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。htm

6、 PageRank

PageRank是Google算法的重要內容。2001年9月被授予美國專利,專利人是Google創始人之一拉里•佩奇(Larry Page)。所以,PageRank裏的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。PageRank根據網站的外部連接和內部連接的數量和質量,衡量網站的價值。PageRank背後的概念是,每一個到頁面的連接都是對該頁面的一次投票, 被連接的越多,就意味着被其餘網站投票越多。對象

這個就是所謂的「連接流行度」——衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自學術中一篇論文的被引述的頻度——即被別人引述的次數越多,通常判斷這篇論文的權威性就越高。

7、AdaBoost

Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不一樣的分類器(弱分類器),而後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。其算法自己是經過改變數據分佈來實現的,它根據每次訓練集之中每一個樣本的分類是否正確,以及上次的整體分類的準確率,來肯定每一個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練獲得的分類器融合起來,做爲最後的決策分類器。

8、 kNN: k-nearest neighbor classification

K最近鄰(k-Nearest Neighbor,KNN)分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。KNN方法的思路:若是一個樣本在特徵空間中的k個最類似的(即特徵空間中最鄰近的K個)樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別

9、 Naive Bayes

在衆多的分類模型中,應用最爲普遍的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBC)。 樸素貝葉斯模型發源於古典數學理論,有着堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的參數不多,對缺失數據不太敏感,算法也比較簡單。理論上,NBC模型與其餘分類方法相比具備最小的偏差率。可是實際上並不是老是如此,這是由於NBC模型假設屬性之間相互獨立,這個假設在實際應用中每每是不成立的,這給NBC模型的正確分類帶來了必定影響。在屬性個數比較多或者屬性之間相關性較大時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的性能最爲良好。

10、 CART: 分類與迴歸樹

CART, Classification and Regression Trees。 在分類樹下面有兩個關鍵的思想:第一個是關於遞歸地劃分自變量空間的想法;第二個想法是用驗證數據進行剪枝

下面貼一張網上找到的算法實現總結

參考:

http://www.csuldw.com/2015/03/18/2015-03-18-machine-learning-top10-algorithms/

相關文章
相關標籤/搜索