1. 程式人生 > >常見機器學習演算法簡述及其優缺點

常見機器學習演算法簡述及其優缺點

以此作第一篇吧。。

一、The k-means algorithm 即K-Means演算法

k-meansalgorithm演算法是一個聚類演算法,把n的物件根據他們的屬性分為k個分割(k< n)。

它與處理混合正態分佈的最大期望演算法(本十大演算法第五條)很相似,因為他們都試圖找到資料中自然聚類的中心。

它假設物件屬性來自於空間向量,並且目標是使各個群組內部的均方誤差總和最小。

優點:容易實現。

缺點:可能收斂到區域性最小值,在大規模資料集上收斂較慢

二、 Support vectormachines

支援向量機將向量對映到一個更高維的空間裡,在這個空間裡建立有一個最大間隔超平面。

在分開資料的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。

假定平行超平面間的距離或差距越大,分類器的總誤差越小。

優點:泛化錯誤率低,計算開銷不大,結果易解釋

缺點:對引數調節和核函式的選擇敏感

三、最大期望(EM)演算法

 在統計計算中,最大期望 (EM,Expectation–Maximization)演算法是在概率(probabilistic)模型中尋找引數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。最大期望經常用在機器學習和計算機視覺的資料集聚(DataClustering)領域。

四、AdaBoost

Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),

然後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。

其演算法本身是通過改變資料分佈來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。

將修改過權值的新資料集送給下層分類器進行訓練,最後將每次訓練得到的分類器融合起來,作為最後的決策分類器。

優點:泛化錯誤率低,易編碼,可以應用在大部分分類器上,無引數調整

缺點:對離群點敏感

五、kNN: k-nearestneighbor classification

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

1、計算已知類別資料集中的點與當前點之間的距離

2、對距離遞增排序,選擇距當前點最小的k個點

3、確定前k個點所在類別出現的頻率

4返回出現頻率最高的類別作為當前點的預測分類

優點:精度高,對異常值不敏感,無資料輸入假定

缺點:計算複雜度高、空間複雜度高

六、決策樹(Decision Tree)

方法:根據資訊增益最大原則,找到決定性特徵,劃分資料集,直到所有子集屬於同一型別,否則遞迴劃分。

建立分支函式createBranch()的虛擬碼如下:

檢測資料集中的每個子項是否屬於同一分類:

    If so return 類標籤;

Else

   尋找劃分資料集的最好特徵

       劃分資料集

       建立分支節點

            For 每個劃分的子集

                呼叫函式createBranch並增加返回結果到分支節點中

        Return 分支節點

優:計算複雜度不高,輸出結果容易理解,對中間值的缺失不敏感,可處理不相關特徵資料

缺:可能產生過度匹配

七Naive Bayes

在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive BayesianModel,NBC)。 樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的引數很少,對缺失資料不太敏感,演算法也比較簡單。

理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。在屬性個數比較多或者屬性之間相關性較大時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的效能最為良好。

優點:資料較少情況下仍然有效,可處理多類別問題

缺點:對於輸入資料的準備方式較敏感

八、Logistic 迴歸

最優化演算法。LR的主要思想是:根據現有資料對分類邊界線建立迴歸公式,以此進行分類。訓練分類器時的做法是尋找最佳擬合引數。

優點:計算代價不高,易於理解和實現

缺點:容易欠擬合,分類精度可能不高