筆者邀請您,先思考:
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)找到其它與資料相關的乾貨。
我們努力堅持做原創,聚合和分享優質的省時的資料知識!
我們都是資料人,資料是有價值的,堅定不移地實現從資料到商業價值的轉換!
加入資料人圈子或者商務合作,請新增筆者微信。
點選閱讀原文,進入資料人網,獲取資料知識。
公眾號推薦:
鏈達君,專註於分享區塊鏈內容。
腳印英語,專註於分享英語口語內容。