1、決策樹
適用條件:數據不同類邊界是非線性的,並且通過不斷將特征空間切分為矩陣來模擬。特征之間有一定的相關性。特征取值的數目應該差不多,因為信息增益偏向於更多數值的特征。
優點:1.直觀的決策規則;2.可以處理非線性特征;3.考慮了變量之間的相互作用。
缺點:1.容易過擬合(隨機森林、剪枝);2.處理缺失數據時的困難;3、數據集中屬性間的相關性。
2、SVM
適用條件:特征空間大,可以處理非線性的特征。
優點:1、可以處理小樣本情況下的機器學習問題;2、可以處理高維特征;3、使用核函數應對非線性特征空間,解決非線性問題;4、分類面不依賴所有數據,只與幾個支持向量有關
缺點:1.對於大量的預測樣本,效率會很低;2.需要找合適的核函數。3、對缺失數據敏感
3、LR
適用條件:數據線性分布;
優點:1.模型簡單,訓練速度快;2.邏輯回歸廣泛應用與工業問題上。
缺點:1、形式簡單,但准確率不是很高;2、依賴所有數據,很難處理數據不平衡問題;3、處理非線性數據較麻煩。邏輯回歸在不引入其他方法的情況下,只能處理線性可分的數據,或者進一步說,處理二分類的問題;4、邏輯回歸本身無法篩選特征。有時候,我們會用gbdt來篩選特征,然后再上邏輯回歸。
4、三者對比:
模型復雜度:SVM支持核函數,可處理線性非線性問題;LR模型簡單,訓練速度快,適合處理線性問題;決策樹容易過擬合,需要進行剪枝
損失函數:SVM hinge loss; LR L2正則化; DT adaboost 指數損失
數據敏感度:SVM添加容忍度對outlier不敏感,只關心支持向量,且需要先做歸一化; LR對遠點敏感
數據量:數據量大就用LR,數據量小且特征少就用SVM非線性核
5、神經網絡
適用條件:數據量龐大,參數之間存在內在聯系。
優點:1.並行分布處理能力強;2.提取數據特征;3.逼近復雜的非線性關系。
缺點:1.需要大量參數;2.學習時間過長;3.不能觀察之間的學習過程,輸出結果難以解釋。
6、隨機森林
優點:1、訓練可以高度並行化,對於大數據時代的大樣本訓練速度有優勢;2、能夠處理很高維度(feature很多)的數據,並且不用做特征選擇;3、可以用於特征選擇,給出各個特征的重要性,縮減特征空間維度;4、由於采用了隨機采樣,訓練出的模型的方差小,泛化能力強;5、實現簡單,對部分缺失數據不敏感(由於是隨機選擇樣本、隨機選擇特征)
缺點:1、在某些噪音比較大的樣本集上,RF模型容易陷入過擬合;2、對於有不同取值的屬性的數據,取值划分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產出的屬性權值是不可信的。
7、Adaboost
優點:1、Adaboost作為分類器時,分類精度很高。;2、在Adaboost的框架下,可以使用各種回歸分類模型來構建弱學習器,不用對特征進行篩選,非常靈活。 3、不容易發生過擬合。
缺點:1、對異常樣本敏感,異常樣本在迭代中可能會獲得較高的權重,影響最終的強學習器的預測准確性。2、由於弱學習器之間存在依賴關系,難以並行訓練數據。不過可以通過自采樣的SGBT來達到部分並行。
8、GBDT
優點:1、可以靈活處理各種類型的數據,包括連續值和離散值,處理分類和回歸問題;2、 在相對少的調參時間情況下,預測的准備率也可以比較高。這個是相對SVM來說的;3、可以用於篩選特征。
4、使用一些健壯的損失函數,對異常值的魯棒性非常強。比如 Huber損失函數和Quantile損失函數。
缺點:1、由於弱學習器之間存在依賴關系,難以並行訓練數據。不過可以通過自采樣的SGBT來達到部分並行。
參考文獻:https://blog.csdn.net/cppjava_/article/details/68922113
https://www.jianshu.com/p/169dc01f0589