三、機器學習算法的優點和缺點

數據人網 • 2018-06-01 23:37 • 人工智能 • 閱讀 282

 

機器學習算法的優點和缺點

從Logistic迴歸開始,然後嘗試Tree Ensembles和/或Neural Networks。
奧卡姆的剃刀原理:使用最簡單的算法,可以滿足您的需求,並且只有在嚴格需要的情況下才用更復雜的算法。
根據我自己的經驗,只有神經網絡和梯度增強決策樹(GBDT)正在工業中廣泛使用。 我目睹Logistic迴歸和隨機森林被棄用不止一次(這意味着它們是好的開始)。 從來沒有人聽說有人在公司中討論SVM。

優點和缺點

這裏討論最流行的算法。 有關機器學習算法的完整列表,請查看cheatsheet

樸素貝葉斯

  • 超級簡單,只是做了一堆計數。
  • 如果NB條件獨立假設實際成立,那麼樸素貝葉斯分類器將比邏輯迴歸等區分性模型更快地收斂,因此您需要更少的訓練數據。 即使NB假設不成立,NB分類器在實踐中仍經常表現出色。
  • 如果你想做某種半監督式的學習,或者想要一些令人尷尬的簡單表現很好的話,這是一個很好的選擇。
  • 沒有分佈要求,
  • 適合少數類別變量
  • 計算獨立分佈的乘積
  • 受到多重共線性

Logistic迴歸

邏輯迴歸仍然是使用最廣泛的,瞭解更多

  • 一個相當好的分類算法,只要你期望你的特徵大致是線性的,並且問題是線性可分的,就可以進行訓練。
  • 可以做一些特徵工程,將大多數非線性特徵很容易地轉化爲線性特徵。
  • 它對噪聲也很穩健,並且可以避免過度擬合,甚至可以使用l2或l1正則化來進行特徵選擇。
  • 邏輯迴歸也可以用於大數據場景,因爲它非常高效並且可以使用例如ADMM(請參閱logreg)進行併發。
  • 輸出可以被解釋爲一個概率:您可以將其用於排名而不是分類。
  • 運行一個簡單的l2正則化LR來提出一個基線
  • 無分佈要求
  • 用少數類別分類變量表現良好
  • 計算logistic分佈
  • 適合少數類別變量
  • 容易解釋
  • 計算CI
  • 遭受多重共線性
  • 很多方法來調整你的模型
  • 不需要擔心相關的特徵,就像樸素貝葉斯一樣。
  • 輕鬆更新模型以接收新數據(使用在線梯度下降法)
  • 如果您需要一個概率框架(例如,輕鬆調整分類閾值,說出何時不確定,或獲得置信區間)還是希望在將來能夠接收更多的訓練數據迅速融入您的模型。

Lasso

  • 沒有分佈要求
  • 計算L1損失
  • 具有變量選擇特點
  • 遭受多重共線性

Ridge

  • 沒有分佈要求
  • 計算L2損失
  • 不具有變量選擇
  • 不受多重共線性

何時不用

  • 如果變量是正態分佈的且分類變量都有5個以上類別:使用線性判別分析
  • 如果相關性大部分是非線性的:使用SVM
  • 如果稀疏性和多重共線性是一個問題:具有Ridge(權重)的自適應Lasso + Lasso

線性判別分析

LDA:線性判別分析,不是潛在的Dirichlet分佈

  • 需要正態分佈
  • 不適合少數類別變量
  • 計算疊加的多元分佈
  • 計算CI
  • 遭受多重共線性

支持向量機

SVM vs LR:

  • 支持向量機(SVM)使用與LR不同的損失函數(Hinge)。
  • 他們也有不同的解釋(最大邊緣間隔)。
  • 然而,實際上,具有線性內核的SVM與Logistic迴歸沒有太大區別(如果您好奇,可以看看Andrew Ng如何從他的Coursera機器學習課程中的Logistic迴歸中推導SVM)。
  • 您希望使用SVM而不是Logistic迴歸的主要原因是您的問題可能不是線性可分的。在這種情況下,您將不得不使用具有非線性內核的SVM(例如RBF)。
  • 事實是,邏輯迴歸也可以用於不同的內核,但在這一點上,出於實際原因,您可能更適合使用SVM。
  • 使用SVM的另一個相關原因是如果您處於高維空間。例如,據報道支持向量機可以更好地用於文本分類。
  • 高準確度,在考慮過擬合時有很好地理論保證。
  • 使用合適的內核,即使數據在基本特徵空間中不能線性分離,它們也可以很好地工作。
  • 在非常高維空間是常態的文本分類問題中尤其受歡迎。
  • 沒有分佈要求
  • 計算鉸鏈損失
  • 靈活選擇非線性相關的核
  • 不受多重共線性
  • 很難解釋

缺點:

  • 訓練可能會很痛苦。不推薦有很多實例的任何問題。不推薦大多數“工業規模”應用的SVM。除了玩具/實驗室問題之外的任何事情可能會更好地用不同的算法來處理。儘管如此,內存密集型和煩人的運行和調優,所以我認爲隨機森林正在開始搶奪冠軍。

決策樹

  • 易於解釋
  • 非參數化的,所以你不必擔心異常值或者數據是否可線性分離
  • 他們的主要缺點是他們很容易過擬合,但這就是像隨機森林(或提升樹)這樣的集成方法進來的地方。
  • 另外,隨機森林往往是分類問題的贏家(通常在SVM上略微領先一些,我相信),它們快速且可擴展,並且您不必擔心像SVM那樣要調整一堆參數,所以他們現在似乎很受歡迎。
  • 沒有分佈要求
  • 啓發式
  • 適合少數類別變量
  • 不受多重共線性(通過選擇其中之一)
  • Bagging, boosting, 集成方法通常優於單一算法。

樹集成:隨機森林和梯度提升樹。
Tree Ensembles vs LR。

  • 他們並不期望線性特徵,甚至線性相互作用的特徵。 LR中沒有提到的一點是,它很難處理分類(二元)特徵。 Tree Ensembles,因爲它們不過是一堆決策樹的組合,可以很好地處理這個問題。另一個主要優點是,由於它們使用裝袋或提升構成的,這些算法可以非常好地處理高維空間以及大量的訓練實例。
  • 兩者都是快速和可擴展的,隨機森林往往會在準確性方面擊敗邏輯迴歸,但邏輯迴歸可以在線更新併爲您提供有用的概率。

隨機森林

隨機森林使用數據的隨機樣本獨立訓練每棵樹。 這種隨機性有助於使模型比單個決策樹更穩健,並且不太過擬合訓練數據。 RF中通常有兩個參數 – 樹數量和被選擇的每個結點的特徵數目(列抽樣)。

  • RF適用於並行或分佈式計算。
  • 幾乎總是比決策樹具有更低的分類錯誤和更好的f分數。
  • 幾乎總是表現出與SVM相同或更好的效果,但對於人類來說更容易理解。
  • 非常適合具有缺失變量的不均勻數據集。
  • 給你一個關於你的數據集中的哪些特徵是最重要的免費的好主意。
  • 通常訓練速度比支持向量機要快(儘管這顯然取決於你的實現)。

梯度提升決策樹

GBDT一次構建一棵樹,每棵新樹有助於糾正先前訓練過的樹造成的錯誤。 每添加一棵樹,該模型就會變得更具表現力。 通常有三個參數 – 樹的數量,樹的深度和學習速率,每棵樹的建立一般都很淺。

  • 容易過擬合
  • GBDT通常表現比RF好,但它們很難達到正確。 更具體地說,GBDT具有更多的超參數要調整,並且更容易出現過擬合。 RF幾乎可以“開箱即用”,這也是他們非常受歡迎的原因之一。
  • GBDT訓練通常需要更長的時間,因爲樹是按順序構建的。

神經網絡

優點

  • 很好地擬合具有大量輸入特徵的非線性數據
  • 廣泛應用於工業
  • 許多開源實現

缺點

  • 神經網絡僅適用於數值輸入,具有常數值的向量和具有非缺失數據的數據集。
  • 分類邊界難以直觀地理解,並且ANN在計算上昂貴。
  • 黑盒子,使他們很難與之合作,就像試圖通過審查人類潛意識來解釋我們的意識行爲背後的原因。
  • 難以訓練:訓練結果可能是非確定性的,並且主要取決於初始參數的選擇
  • 當他們不像您期望的那樣工作時,他們很難排除故障,當他們工作時,您將永遠不會確信自己會很好地歸納未包含在您的訓練集中的數據,因爲從根本上說,您不瞭解你的網絡如何解決問題
  • 多層神經網絡通常很難訓練,並且需要調整大量參數
  • 神經網絡不是概率性的,不像其他統計學或貝葉斯統計學。一個神經網絡可能會給你一個連續的數字作爲它的輸出(例如一個分數),但是把它轉換成一個概率往往是困難的。具有更強大理論基礎的方法通常會直接爲您提供這些概率。

深度學習

  • 不是通用的分類技術。
  • 擅長圖像分類,視頻,音頻,文字。

概要

考慮的因素

  • 訓練例子的數量,(你的訓練集有多大?)
    • 如果訓練集很小,高偏差/低方差分類器(例如樸素貝葉斯)比低偏差/高方差分類器(例如,kNN或邏輯迴歸)具有優勢,因爲後者會過度擬合。但是隨着訓練集的增長(它們具有較低的漸近誤差),低偏差/高方差分類器開始贏得勝利,因爲高偏差分類器的功能不足以提供準確的模型。您也可以將其視爲生成模型與判別模型的區別。
  • 特徵空間的維度
  • 我希望問題是線性可分的嗎?
  • 特徵是否獨立?
  • 期望的特徵將與目標變量呈線性關係嗎?
  • 過度擬合是否會成爲問題?
  • 在速度/性能/內存使用方面,系統的要求是什麼……?
  • 它需要變量滿足正態分佈嗎?
  • 它是否遭受多重共線性問題?
  • 用分類變量做作爲連續變量是否表現好?
  • 它是否計算沒有CV的CI?
  • 它是否可以不要stepwise而進行變量選擇?
  • 它適用於稀疏數據嗎?

從Logistic迴歸等簡單的事情開始,設置一個基線,並且只在需要時纔會使其更加複雜。此時,樹集成,特別是隨機森林,因爲它們很容易調整,可能是正確的路。如果你覺得還有改進的空間,試試GBDT或者更有興趣去嘗試深度學習。

原文鏈接:https://www.hackingnote.com/en/machine-learning/algorithms-pros-and-cons/

編譯:數據人網

鏈接:http://shujuren.org/article/591.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章