歡迎光臨
每天分享高質量文章

【演演算法】機器學習演演算法的優點和缺點


筆者邀請您,先思考:

1 機器學習演演算法的優缺點分析?

從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 。專註於從資料中學習到有用知識。
平臺的理念:人人投稿,知識共享;人人分析,洞見驅動;智慧聚合,普惠人人。
您在資料人網平臺,可以1)學習資料知識;2)建立資料部落格;3)認識資料朋友;4)尋找資料工作;5)找到其它與資料相關的乾貨。
我們努力堅持做原創,聚合和分享優質的省時的資料知識!
我們都是資料人,資料是有價值的,堅定不移地實現從資料到商業價值的轉換!

加入資料人圈子或者商務合作,請新增筆者微信。


點選閱讀原文,進入資料人網,獲取資料知識。

公眾號推薦:

鏈達君,專註於分享區塊鏈內容。

腳印英語,專註於分享英語口語內容。

贊(0)

分享創造快樂