當前位置: 首頁>>機器學習>>正文


各種分類算法的優缺點

原文來自: http://bbs.pinggu.org/thread-2604496-1-1.html,這裏對部分地方添加了注解以及自己的理解。原文對一些常用的分類算法,如決策樹、SVM、樸素貝葉斯、adaboost、KNN等都提到了,總結得比較好,這裏增加了一些自己的理解(文中斜體標明)。
classify_algorithm

1.決策樹(Decision Trees)的優缺點

決策樹的優點:

一、           決策樹易於理解和解釋.人們在通過解釋後都有能力去理解決策樹所表達的意義。

二、           對於決策樹,數據的準備往往是簡單或者是不必要的.其他的技術往往要求先把數據一般化,比如去掉多餘的或者空白的屬性。

三、           能夠同時處理數據型和類別型屬性。其他的技術往往要求數據屬性的單一。

四、           決策樹是一個白盒模型。如果給定一個觀察的模型,那麽根據所產生的決策樹很容易推出相應的邏輯表達式。

五、           易於通過靜態測試來對模型進行評測。表示有可能測量該模型的可信度。

六、          在相對短的時間內能夠對大型數據源做出可行且效果良好的結果。

七、           可以對有許多屬性的數據集構造決策樹。

八、           決策樹可很好地擴展到大型數據庫中,同時它的大小獨立於數據庫的大小。

 九、          決策樹常用於集成算法,如隨機森林,提升樹等,效果更佳。

決策樹的缺點:

一、           對於那些各類別樣本數量不一致的數據,在決策樹當中,信息增益的結果偏向於那些具有更多數值的特征。

二、           決策樹處理缺失數據時的困難。

三、           過度擬合問題的出現。

四、           忽略數據集中屬性之間的相關性。

2. 人工神經網絡的優缺點

人工神經網絡的優點:分類的準確度高,並行分布處理能力強,分布存儲及學習能力強,對噪聲神經有較強的魯棒性和容錯能力,能充分逼近複雜的非線性關係,具備聯想記憶的功能等。特別重要的是,神經網絡可以用來提取特征,這是許多其他機器學習方法所不具備的能力(例如使用autoencoder,不標注語料的情況下,可以得到原始數據的降維表示)。

人工神經網絡的缺點:神經網絡需要大量的參數,如網絡拓撲結構、權值和閾值的初始值;不能觀察之間的學習過程,輸出結果難以解釋,會影響到結果的可信度和可接受程度;學習時間過長,甚至可能達不到學習的目的。

3. 遺傳算法的優缺點

遺傳算法的優點:

一、           與問題領域無關切快速隨機的搜索能力。

二、           搜索從群體出發,具有潛在的並行性,可以進行多個個體的同時比較,魯棒性好。

三、           搜索使用評價函數啟發,過程簡單。

四、           使用概率機製進行迭代,具有隨機性。

五、           具有可擴展性,容易與其他算法結合。

六、           天生具有良好的並行性,通過選擇構造多個種群,可以分布式獨立來跑。(注)

遺傳算法的缺點:

一、           遺傳算法的編程實現比較複雜,首先需要對問題進行編碼,找到最優解之後還需要對問題進行解碼,

二、           另外三個算子的實現也有許多參數,如交叉率和變異率,並且這些參數的選擇嚴重影響解的品質,而目前這些參數的選擇大部分是依靠經驗.沒有能夠及時利用網絡的反饋信息,故算法的搜索速度比較慢,要得要較精確的解需要較多的訓練時間。

三、           算法對初始種群的選擇有一定的依賴性,能夠結合一些啟發算法進行改進。

四、          據我所知,遺傳算法目前的一些最成功的應用還是在求解多元高次方程組,在工業界的機器學習中用到還不多哇。

4. KNN算法(K-Nearest Neighbour) 的優缺點

KNN算法的優點:

一、          簡單、有效。

二、          重新訓練的代價較低(類別體係的變化和訓練集的變化,在Web環境和電子商務應用中是很常見的)。

三、          計算時間和空間線性於訓練集的規模(在一些場合不算太大)。

四、           由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。

五、           該算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域采用這種算法比較容易產生誤分。

 

KNN算法缺點:

一、           KNN算法是懶散學習方法(lazy learning,基本上不學習),一些積極學習的算法要快很多。

二、           類別評分不是規格化的(不像概率評分)。

三、           輸出的可解釋性不強,例如決策樹的可解釋性較強。

四、           該算法在分類時有個主要的不足是,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個 鄰居中大容量類的樣本占多數。該算法隻計算“最近的”鄰居樣本,某一類的樣本數量很大,那麽或者這類樣本並不接近目標樣本,或者這類樣本很靠近目標樣本。 無論怎樣,數量並不能影響運行結果。可以采用權值的方法(和該樣本距離小的鄰居權值大)來改進。

五、           計算量較大。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。

5. 支持向量機(SVM)的優缺點

SVM的優點:

一、           可以解決小樣本情況下的機器學習問題。【注: 這個小是有限度的,訓練語料必須覆蓋支持向量上的點,樣本特別小的時候語料分布很難近似於真實數據的分布,可以采用bootstrap選擇少量種子來迭代擴大召回的方法。

二、           可以提高泛化性能。(根據VC維理論,SVM不容易過擬合)

三、           可以解決高維問題。

四、           可以解決非線性問題。

五、           可以避免神經網絡結構選擇和局部極小點問題。

 

SVM的缺點:

一、           對缺失數據敏感。

二、           對非線性問題沒有通用解決方案,必須謹慎選擇Kernelfunction來處理。

6. 樸素貝葉斯的優缺點

優點:

一、           樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。

二、           NBC模型所需估計的參數很少,對缺失數據不太敏感,算法也比較簡單。

 

缺點:

一、           理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中 往往是不成立的(可以考慮用聚類算法先將相關性較大的屬性聚類),這給NBC模型的正確分類帶來了一定影響。在屬性個數比較多或者屬性之間相關性較大 時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的性能最為良好。(正所謂成也蕭何敗也蕭何,樸素貝葉斯正因為”樸素”(獨立假設)而簡單有效,但也因為這個而具有局限性。)

二、           需要知道先驗概率。

三、           分類決策存在錯誤率

7. Adaboosting方法的優點

一、           adaboost是一種有很高精度的分類器。

二、           可以使用各種方法構建子分類器,Adaboost算法提供的是框架。

三、           當使用簡單分類器時,計算出的結果是可以理解的。而且弱分類器構造極其簡單(例如使用決策樁,樁的選擇依據可以是信息增益,誤分類率,GINI不純度等)。

四、           簡單,不用做特征篩選。

五、           不用擔心overfitting。

8 Rocchio的優點

Rocchio算法的突出優點是容易實現,計算(訓練和分類)特別簡單,它通常用來實現衡量分類係統性能的基準係統,而實用的分類係統很少采用這種算法解決具體的分類問題。(這個方法有點想Kmeans, 就是把某一類的所有向量加起來(或均值)作為這個類的向量表示(或質心)

9. 各種分類算法比較

根據這篇論文所得出的結論,

Calibrated boosted trees的性能最好,隨機森林第二,uncalibrated bagged trees第三,calibratedSVMs第四, uncalibrated neural nets第五。

    性能較差的是樸素貝葉斯,決策樹。

    有些算法在特定的數據集下表現較好。

10. 再補充一條:最大熵模型

主要優點:1)天然支持多分類  2)相對於SVM,具有較好的特征選擇能力,能自動將某些特征權值置為0

主要缺點:1)模型訓練比較慢。2)一般用於學習的實現比較簡單(如GIS) ,工業級的實現比較困難。


參考文獻:

[1] 羅森林, 馬俊, 潘麗敏.數據挖掘理論與技術[M].電子工業出版社.2013.126-126

[2] 楊曉帆,陳廷槐.人工神經網絡固有的優點和缺點[J].計算機科學.1994(vol.21).23-26

[3] Steve.遺傳算法的優缺點.http://blog.sina.com.cn/s/blog_6377a3100100h1mj.html

[4] 楊建武.文本自動分類技術.

www.icst.pku.edu.cn/course/mining/12-13spring/TextMining04-%E5%88%86%E7%B1%BB.pdf

[5] 白雲球工作室. SVM(支持向量機)綜述.http://blog.sina.com.cn/s/blog_52574bc10100cnov.html

[6] 張夏天. 統計學習理論和SVM的不足(1).http://blog.sciencenet.cn/blog-230547-248821.html

[7] RichCaruana,AlexandruNiculescu-Mizil.An Empirical Comparison of Supervised LearningAlgorithms.2006

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/917.html,未經允許,請勿轉載。