1. 前言
在機器學習中,種類最多的一類算法要屬很類算法,本文對機器學習中的各種分類算法的優缺點做一個總結。
2. 貝葉斯分類法
2.1 優點
- 所需估計的參數少,對於缺失數據不敏感。
- 有着堅實的數學基礎,以及穩定的分類效率。
2.2 缺點
- 假設屬性之間相互獨立,這往往並不成立。(喜歡吃番茄、雞蛋,卻不喜歡吃番茄炒蛋)。
- 需要知道先驗概率。
- 分類決策存在錯誤率。
3. 決策樹
3.1 優點
- 不需要任何領域知識或參數假設。
- 適合高維數據。
- 簡單易於理解。
- 短時間內處理大量數據,得到可行且效果較好的結果。
- 能夠同時處理數據型和常規性屬性。
3.2 缺點
- 對於各類別樣本數量不一致數據,信息增益偏向於那些具有更多數值的特征。
- 易於過擬合。
- 忽略屬性之間的相關性。
- 不支持在線學習。
4. 支持向量機
4.1 優點
- 可以解決小樣本下機器學習的問題。
- 提高泛化性能。
- 可以解決高維、非線性問題。超高維文本分類仍受歡迎。
- 避免神經網絡結構選擇和局部極小的問題。
4.2 缺點
- 對缺失數據敏感。
- 內存消耗大,難以解釋。
- 運行和調差略煩人。
5. K近鄰
5.1 優點
- 思想簡單,理論成熟,既可以用來做分類也可以用來做回歸。
- 可用於非線性分類。
- 訓練時間復雜度為O(n)。
- 准確度高,對數據沒有假設,對outlier不敏感。
5.2 缺點
- 計算量太大。
- 對於樣本分類不均衡的問題,會產生誤判。
- 需要大量的內存。
- 輸出的可解釋性不強。
6. Logistic回歸
6.1 優點
- 運算速度快。
- 簡單易於理解,直接看到各個特征的權重。
- 能容易地更新模型吸收新的數據。
- 如果想要一個概率框架,動態調整分類閥值。
6.2 缺點
- 特征處理復雜。需要歸一化和較多的特征工程。
7. 神經網絡
7.1 優點
- 分類准確率高。
- 並行處理能力強。
- 分布式存儲和學習能力強。
- 魯棒性較強,不易受噪聲影響。
7.2 缺點
- 需要大量參數(網絡拓撲、閥值、閾值)。
- 結果難以解釋。
- 訓練時間過長。
8. Adaboost
8.1 優點
- adaboost是一種有很高精度的分類器。
- 可以使用各種方法構建子分類器,Adaboost算法提供的是框架。
- 當使用簡單分類器時,計算出的結果是可以理解的。而且弱分類器構造極其簡單。
- 簡單,不用做特征篩選。
- 不用擔心overfitting。
8.2 缺點
- 對outlier比較敏感