常見機器學習演算法簡述及其優缺點
以此作第一篇吧。。
一、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的主要思想是:根據現有資料對分類邊界線建立迴歸公式,以此進行分類。訓練分類器時的做法是尋找最佳擬合引數。
優點:計算代價不高,易於理解和實現
缺點:容易欠擬合,分類精度可能不高