監督學習中各演算法優缺點及應用場景概覽
歡迎關注我們的微信公眾號「人工智慧LeadAI」(ID:atleadai)
記錄一波監督學習演算法的應用場景和優缺點。
高斯樸素貝葉斯
場景:該模型常用於性別分類(https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Sex_classification),即通過一些測量的特徵,包括身高、體重、腳的尺寸,判定一個人是男性還是女性。
優點:這個模型的優勢是處理連續數據,特別當數據是高斯分布時,有一個很好的表現。處理連續數據數值問題的另一種常用技術是通過離散化連續數值的方法。通常,當訓練樣本數量較少或者是精確的分布已知時,通過概率分布的方法是一種更好的選擇。在大量樣本的情形下離散化的方法表現最優,因為大量的樣本可以學習到數據的分布。
缺點:由於高斯樸素貝葉斯使用的是概率分布估計的方法,不合適在大數據集上應用,因為容易出現欠擬合,在數據分布不準確時或數據樣本很大時,表現很差。
決策樹
場景:百度到一個相親用決策樹的應用,每個節點是一個評判標準,最後決定是否要嫁/娶。
優點:決策過程接近人的思維習慣,模型容易理解。
缺點:決策樹學習方法的準確率不如其他模型,不支持在線學習,有新樣本來的時候需要重建決策樹,容易產生過擬合現象。(http://m.blog.csdn.net/article/details?id=47616255)
KNN
場景:KNN的應用有分類未知案例的項目(摘自百度百科)。
優點:無需估計參數,簡單,易於理解。特別適合於多分類問題(multi-modal,對象具有多個類別標籤), KNN比SVM的表現要好(svm更適合二分類)。
缺點:當有偏斜類的情況下,由於演算法只計算最近的k個樣本,假設小樣本總數小於k/2,即使都很近,也會分錯。該方法的另一個不足之處是計算量較大,因為對每一個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點。
集成學習之AdaBoost
場景:人臉檢測,AdaBoost以弱學習器作為基分類器,並且輸入數據,使其通過權重向量進行加權,第一次迭代時所有數據等權重,在後續迭代中,前次迭代分錯的數據權重會增大。
優點:它有錯誤調節能力,分類精度高;在Adaboost的框架下可以使用各種回歸分類模型來構建弱學習器,非常靈活;作為簡單的二元分類器時,構造簡單,結果可理解;不容易發生過擬合。
缺點:對異常樣本敏感,異常樣本在迭代中可能會獲得較高的權重,影響最終的強學習器的預測準確性。
SVM
場景:進行文本的分類
優點:在解決小樣本、非線性以及高維模式識別中表現出許多特有的優勢,對於非線性的分類問題,可以通過核函數把原來低維的空間中線性不可分的問題映射到高維,變成線性可分的問題進而得以解決。同樣,也可以採用SMO的方式,將分解的思維推向極致,用SVM來處理多分類的問題。
缺點:在處理數據上面的時間較慢,複雜度較高,在處理多分類的問題上面存在著不足,還需要在二分類的基礎上自己構造多分類相關的演算法,代價比較大。
隨機梯度下降分類器(SGDC)
場景:圖片分類。
優點:普通的梯度下降演算法在更新回歸係數時要遍歷整個數據集,是一種批處理方法,這樣訓練數據特別忙龐大時,可能出現收斂過程可能非常慢、不能保證找到全局最小值這樣的問題。而隨機梯度下降分類器能夠更好地處理上述問題,更能避免進入局部極小值中。SGDC處理大規模問題表現比較好。
缺點:不太適合用於高精度問題,當處理高精度問題時它的表現很差。
Logistic回歸
場景:主要用於危險因素探索(摘自百度百科)
優點:分類時計算量非常小,速度很快,易於理解和實現。他是一個單調上升的函數,具有良好的連續性,不存在不連續點。
缺點:當特徵空間很大時,邏輯回歸的性能不是很好;容易欠擬合,一般準確度不太高;不能很好地處理大量多類特徵或變數;對於非線性特徵,需要進行轉換;只能處理兩分類問題(在此基礎上衍生出來的softmax可以用於多分類),且必須線性可分。
推薦閱讀:
※哪種隨機數生成演算法最適合遊戲使用?
※Weighted linear matroid parity問題
※從兩道亦可賽艇的演算法題看字典的神奇作用
※BAT機器學習面試1000題系列(281-285)
※萌新刷題(九)二叉查找樹迭代器