邏輯迴歸
邏輯迴歸非常便利並且很有用的一點就是,它輸出的結果並不是一個離散值或者確切的類別。相反,你得到的是一個與每個觀測樣本相關的概率列表。你可以使用不同的標準和常用的性能指標來分析這個概率分數,並得到一個閾值,然後使用最符合你業務問題的方式進行分類輸出。
邏輯迴歸的優點:
- 便利的觀測樣本概率分數;
- 已有工具的高效實現;
- 對邏輯迴歸而言,多重共線性並不是問題,它可以結合L2正則化來解決;
- 邏輯迴歸廣泛的應用於工業問題上(這一點很重要)。
邏輯迴歸的缺點:
- 當特徵空間很大時,邏輯迴歸的性能不是很好;
- 不能很好地處理大量多類特徵或變量;
- 對於非線性特徵,需要進行轉換;
- 依賴於全部的數據(個人覺得這並不是一個很嚴重的缺點)
決策樹
決策樹固有的特性是它對單向變換或非線性特徵並不關心[這不同於預測器當中的非線性相關性>,因爲它們簡單地在特徵空間中插入矩形[或是(超)長方體],這些形狀可以適應任何單調變換。當決策樹被設計用來處理預測器的離散數據或是類別時,任何數量的分類變量對決策樹來說都不是真正的問題。使用決策樹訓練得到的模型相當直觀,在業務上也非常容易解釋。決策樹並不是以概率分數作爲直接結果,但是你可以使用類概率反過來分配給終端節點。這也就讓我們看到了與決策樹相關的最大問題,即它們屬於高度偏見型模型。你可以在訓練集上構建決策樹模型,而且其在訓練集上的結果可能優於其它算法,但你的測試集最終會證明它是一個差的預測器。你必須對樹進行剪枝,同時結合交叉驗證才能得到一個沒有過擬合的決策樹模型。
隨機森林在很大程度上克服了過擬合這一缺陷,其本身並沒有什麼特別之處,但它卻是決策樹一個非常優秀的擴展。隨機森林同時也剝奪了商業規則的易解釋性,因爲現在你有上千棵這樣的樹,而且它們使用的多數投票規則會使得模型變得更加複雜。同時,決策樹變量之間也存在相互作用,如果你的大多數變量之間沒有相互作用關係或者非常弱,那麼會使得結果非常低效。此外,這種設計也使得它們更不易受多重共線性的影響。
決策樹的優點:
- 直觀的決策規則
- 可以處理非線性特徵
- 考慮了變量之間的相互作用
決策樹的缺點:
- 訓練集上的效果高度優於測試集,即過擬合[隨機森林克服了此缺點]
- 沒有將排名分數作爲直接結果
SVM:
SVM的優點:
- 能夠處理大型特徵空間
- 能夠處理非線性特徵之間的相互作用
- 無需依賴整個數據
SVM的缺點:
- 當觀測樣本很多時,效率並不是很高
- 有時候很難找到一個合適的核函數
我試着編寫一個簡單的工作流,決定應該何時選擇這三種算法,流程如下:
- 首當其衝應該選擇的就是邏輯迴歸,如果它的效果不怎麼樣,那麼可以將它的結果作爲基準來參考;
- 然後試試決策樹(隨機森林)是否可以大幅度提升模型性能。即使你並沒有把它當做最終模型,你也可以使用隨機森林來移除噪聲變量;
- 如果特徵的數量和觀測樣本特別多,那麼當資源和時間充足時,使用SVM不失爲一種選擇。