LR,DT,SVM都有自身的特性,首先來看一下LR,工業界最受青睞的機器學習算法,訓練、預測的高效性能以及算法容易實現使其能輕鬆適應工業界的需求。LR還有個很是方便實用的額外功能就是它並不會給出離散的分類結果,而是給出該樣本屬於各個類別的機率(多分類的LR就是softmax),能夠嘗試不一樣的截斷方式來在評測指標上進行同一模型的性能評估,從而獲得最好的截斷分數。LR不論是實現仍是訓練或者預測都很是高效,很輕鬆的handle大規模數據的問題(同時LR也很適合online learning)。此外,LR對於樣本噪聲是robust的,對於「mild」的多重共線性問題也不會受到太大影響,在特徵的多重共線性很強的狀況下,LR也能夠經過L2正則化來應對該問題,雖然在有些狀況下(想要稀疏特徵)L2正則化並不太適用。算法
可是,當咱們有大量的特徵以及部分丟失數據時,LR就開始費勁了。太多的分類變量(變量值是定性的,表現爲互不相容的類別或屬性,例如性別,年齡段(1,2,3,4,5)等)也會致使LR的性能較差(這個時候能夠考慮作離散化,其實確定是要作離散化的)。還有一種論調是LR使用全部的樣本數據用於訓練,這引起了一個爭論:明顯是正例或者負例的樣本(這種樣本離分類邊界較遠,不大會影響分類的curve)不太應該被考慮太多,模型理想狀況是由分類邊界的樣本決定的(相似SVM的思想),以下圖。還有一個狀況就是當特徵是非線性時,須要作特徵變換,這可能會致使特徵維度急劇上升。下面是我認爲的LR的一些利弊:機器學習
LR的優點:函數
對觀測樣本的機率值輸出
實現簡單高效
多重共線性的問題能夠經過L2正則化來應對
大量的工業界解決方案
支持online learning(我的補充) 性能
LR的劣勢:學習
特徵空間太大時表現不太好
對於大量的分類變量無能爲力
對於非線性特徵須要作特徵變換
依賴全部的樣本數據測試
決策樹對於單調的特徵變換是」indifferent」的,也就是說特徵的單調變換對於決策樹來講不會產生任何影響,由於決策樹是經過簡單的使用矩形切分特徵空間的,單調的特徵變換隻是作了特徵空間的縮放而已。因爲決策樹是的分支生成是使用離散的區間或類別值的,因此對於無論多少分類變量都可以輕鬆適應,並且經過決策樹生成出來的模型很直觀並且容易解釋(隨着決策樹的分支解釋便可),並且決策樹也能夠經過計算落到該葉子類目的標籤平均值得到最終類別的機率輸出。可是這就引起了決策樹的最大問題:很是容易過擬合,咱們很容易就會生成一個完美擬合訓練集的模型,可是該模型在測試集合上的表現卻很poor,因此這個時候就須要剪枝以及交叉驗證來保證模型不要過擬合了。spa
過擬合的問題還能夠經過使用隨機森林的方式來解決,隨機森林是對決策樹的一個很smart的擴展,即便用不一樣的特徵集合和樣本集合生成多棵決策樹,讓它們來vote預測樣本的標籤值。可是隨機森林並無像單純決策樹同樣的解釋能力。 io
DT的優點:class
直觀的決策過程
可以處理非線性特徵 效率
DT的劣勢:
極易過擬合(使用RF能夠必定程度防止過擬合,可是隻要是模型就會過擬合!)
沒法輸出score,只能給出直接的分類結果
SVM最大的好處就是它只依賴於處於分類邊界的樣原本構建分類面,能夠處理非線性的特徵,同時,只依賴於決策邊界的樣本還可讓他們可以應對」obvious」樣本缺失的問題。因爲SVM可以輕鬆搞定大規模的特徵空間因此在文本分析等特徵維度較高的領域是比較好的選擇。SVM的可解釋性並不像決策樹同樣直觀,若是使用非線性核函數,SVM的計算代價會高不少。
SVM的優點:
能夠處理高維特徵
使用核函數輕鬆應對非線性特徵空間
分類面不依賴於全部數據
SVM的劣勢:
對於大量的觀測樣本,效率會很低
找到一個「合適」的核函數仍是很tricky的
爲何將原問題轉爲對偶問題?