機器學習中各類算法的優缺點比較

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

  • 決策樹的優點:

一、 決策樹易于理解和解釋.人們在通過解釋后都有能力去理解決策樹所表達的意義。
二、 對于決策樹,數據的準備往往是簡單或者是不必要的.其他的技術往往要求先把數據一般化,比如去掉多余的或者空白的屬性。
三、 能夠同時處理數據型和常規型屬性。其他的技術往往要求數據屬性的單一。
四、 決策樹是一個白盒模型。如果給定一個觀察的模型,那么根據所產生的決策樹很容易推出相應的邏輯表達式。
五、 易于通過靜態測試來對模型進行評測。表示有可能測量該模型的可信度。
六、 在相對短的時間內能夠對大型數據源做出可行且效果良好的結果。
七、 可以對有許多屬性的數據集構造決策樹。
八、 決策樹可很好地擴展到大型數據庫中,同時它的大小獨立于數據庫的大小。

  • 決策樹的缺點:

一、 對于那些各類別樣本數量不一致的數據,在決策樹當中,信息增益的結果偏向于那些具有更多數值的特征。
二、 決策樹處理缺失數據時的困難。
三、 過度擬合問題的出現。
四、 忽略數據集中屬性之間的相關性。

2 人工神經網絡的優缺點

  • 人工神經網絡的優點:

分類的準確度高,并行分布處理能力強,分布存儲及學習能力強,對噪聲神經有較強的魯棒性和容錯能力,能充分逼近復雜的非線性關系,具備聯想記憶的功能等。

  • 人工神經網絡的缺點:

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

3 遺傳算法的優缺點

  • 遺傳算法的優點:

一、 與問題領域無關切快速隨機的搜索能力。
二、 搜索從群體出發,具有潛在的并行性,可以進行多個個體的同時比較,魯棒性好。
三、 搜索使用評價函數啟發,過程簡單。
四、 使用概率機制進行迭代,具有隨機性。
五、 具有可擴展性,容易與其他算法結合。

  • 遺傳算法的缺點:

一、 遺傳算法的編程實現比較復雜,首先需要對問題進行編碼,找到最優解之后還需要對問題進行解碼,
二、 另外三個算子的實現也有許多參數,如交叉率和變異率,并且這些參數的選擇嚴重影響解的品質,而目前這些參數的選擇大部分是依靠經驗.沒有能夠及時利用網絡的反饋信息,故算法的搜索速度比較慢,要得要較精確的解需要較多的訓練時間。
三、 算法對初始種群的選擇有一定的依賴性,能夠結合一些啟發算法進行改進。

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

  • KNN算法的優點:

一、 簡單、有效。
二、 重新訓練的代價較低(類別體系的變化和訓練集的變化,在Web環境和電子商務應用中是很常見的)。
三、 計算時間和空間線性于訓練集的規模(在一些場合不算太大)。
四、 由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
五、 該算法比較適用于樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域采用這種算法比較容易產生誤分。

  • KNN算法缺點:

一、 KNN算法是懶散學習方法(lazy learning,基本上不學習),一些積極學習的算法要快很多。
二、 類別評分不是規格化的(不像概率評分)。
三、 輸出的可解釋性不強,例如決策樹的可解釋性較強。
四、 該算法在分類時有個主要的不足是,當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本占多數。該算法只計算“最近的”鄰居樣本,某一類的樣本數量很大,那么或者這類樣本并不接近目標樣本,或者這類樣本很靠近目標樣本。無論怎樣,數量并不能影響運行結果。可以采用權值的方法(和該樣本距離小的鄰居權值大)來改進。
五、 計算量較大。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。

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

  • SVM的優點:

一、 可以解決小樣本情況下的機器學習問題。
二、 可以提高泛化性能。
三、 可以解決高維問題。
四、 可以解決非線性問題。
五、 可以避免神經網絡結構選擇和局部極小點問題。

  • SVM的缺點:

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

6 樸素貝葉斯的優缺點

  • 優點:

一、 樸素貝葉斯模型發源于古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。
二、 NBC模型所需估計的參數很少,對缺失數據不太敏感,算法也比較簡單。

  • 缺點:

一、 理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的(可以考慮用聚類算法先將相關性較大的屬性聚類),這給NBC模型的正確分類帶來了一定影響。在屬性個數比較多或者屬性之間相關性較大時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的性能最為良好。
二、 需要知道先驗概率。
三、 分類決策存在錯誤率

7 Adaboosting方法的優點

  • 優點

一、 adaboost是一種有很高精度的分類器。
二、 可以使用各種方法構建子分類器,Adaboost算法提供的是框架。
三、 當使用簡單分類器時,計算出的結果是可以理解的。而且弱分類器構造極其簡單。
四、 簡單,不用做特征篩選。
五、 不用擔心overfitting。

8 Rocchio的優點

  • 優點

Rocchio算法的突出優點是容易實現,計算(訓練和分類)特別簡單,它通常用來實現衡量分類系統性能的基準系統,而實用的分類系統很少采用這種算法解決具體的分類問題。

9 隨機森林算法:

  • 優點:

一 在數據集上表現良好,兩個隨機性的引入,使得隨機森林不容易陷入過擬合。
二 在當前的很多數據集上,相對其他算法有著很大的優勢,兩個隨機性的引入,使得隨機森林具有很好的抗噪聲能力。
三 它能夠處理很高維度(feature很多)的數據,并且不用做特征選擇,對數據集的適應能力強:既能處理離散型數據,也能處理連續型數據,數據集無需規范化。
四 在訓練過程中,能夠檢測到feature間的互相影響。
五 對于不平衡的數據,它可以平衡誤差。

  • 缺點:

一 在某些噪音較大的分類或回歸問題上會產生過擬合現象。
二 對于有不同取值的屬性的數據,取值劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產出的屬性權值是不可行的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456919.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456919.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456919.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在程序開發中日志級別

日志打印可以查看代碼的執行情況,以及快速定位錯誤。 在代碼中,特別是業務層邏輯的代碼,適當的添加日志是必須的,一般在catch代碼塊中是出現異常的,如果需要打印 可以用error級別, 一般的無關緊要的日志&am…

基于Python搭建Django后臺管理系統

一、博客網站的創建 創建項目 生成站點(sites)Model,這兩步驟第一篇有介紹,這里就直接操作了 二、數據庫配置 介紹一下數據庫的配置就是在setting里面配置鏈接的數據庫,這里系統以及配置好了,鏈接一個…

計算機研究所專業課,【擇校必看】十三所計算機專業課只考數據結構的985院校!...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓敲黑板:本文涉及到的學校計算機專業考研只考數據結構,其中部分院校同時也會考算法、C語言等相關內容。但是,相對其他幾門,無疑在專業課的復習上大大降低了難度。如果各位同學目前的專…

在Python2.7下如何安裝TA-lib庫

最近在做一個關于股票預測的模型,由于想要用Talib庫中的方法,來提取各種金融技術指標,所以就下了這個庫。但整個過程可謂是一波三折。花費了大半天才搞定這件事。 下面來給大家分享一下安裝的步驟,省的大家再往這個坑里跳。。。 …

JavaScript 實現繼承的5種方式

js是一個面向對象的語言,所以具備一些面向對象的方式----------例如繼承。接下來介紹5種js的繼承方式.注意:js 中的函數其實是對象,函數名是對 Function 對象的引用。 1.采用call方法改變函數上下文實現繼承,原理是改變函數內部的…

day20 django

1、Django請求的生命周期武彥濤:路由系統 -> 試圖函數(獲取模板數據》渲染) -> 字符串返回給用戶2、路由系統王騰:/index/ -> 函數或類.as_view()/detail/(\d) -> 函數(參數) 或 類.as_view()(參數&am…

解決Django 忘記超級管理員密碼 重設密碼登錄教程

看到標題就知道有逗比忘了密碼。。。沒錯就是我。 你也忘了密碼? 不要著急! 00: 第一步:運行django shell python3 manage.py shell 01: 第二步:重設密碼 >>> from django.contrib.auth…

計算機統計知識,計算機知識在統計工作中的重要性

計算機知識在統計工作中的重要性目前計算機已在縣以上統計部門廣為利用,如何注意提高統計業務人員的計算機水平,培養出既懂統計業務,又懂計算機知識的復合型統計人才,是當前急待研究和解決的重要問題。一、計算機存在的問題當前在基層統計隊伍中使用計算機存在(本文共1頁)閱讀全…

初學者在python下使用Ta-lib庫時遇到的一些問題及解決辦法

由于Ta-lib是一款小眾庫,所以沒有很好的API來說明其中各個函數的使用方法。無奈只能摸著石頭過河,一個個試其中函數。期間遇到一些問題希望分享出來對大家有幫助。 問題描述:在使用Ta-lib庫時用到的一些簡單函數如SMA(),WMA(),EMA()這類方法時&#xff…

cocoapods-安裝

下面方法解決pod setup出錯(特別慢): 1.訪問 https://github.com/CocoaPods/Specs,然后將Specs項目fork到自己的github賬戶上2. 下載GitHub Desktop, 然后clone Specs項目(客戶端還是特別慢,我直接check一份…

計算機在輸電線路設計中的應用研究,計算機在輸電線路基礎設計中的應用原稿(備份存檔)...

《計算機在輸電線路基礎設計中的應用(原稿).doc》由會員分享,可免費在線閱讀全文,更多與《計算機在輸電線路基礎設計中的應用(原稿)》相關文檔資源請在幫幫文庫(www.woc88.com)數億文檔庫存里搜索。1、節省與浪費材料的情況之分。遵從相應的規則對全部可…

global全局變量

global全局變量 在不指向新的地址時,可以不調用global

C# 獲取文件MD5值的方法

可用于對比文件是否相同 1 /// <summary>2 /// 獲取文件MD5值3 /// </summary>4 /// <param name"fileName">文件絕對路徑</param>5 /// <returns>MD5值</returns>6 public static str…

快速入門Matplotlib

以下是原文正文&#xff1a; 數據的處理、分析和可視化已經成為 Python 近年來最重要的應用之一。這種現象又進一步引出“大數據”分析等類似的話題&#xff0c;而大數據分析在人們所能預見的諸多領域內都有廣泛應用&#xff0c;這其中就包含筆者個人感興趣的機器學習。 Pytho…

谷歌開源 Python Fire:可自動生成命令行接口

為什么80%的碼農都做不了架構師&#xff1f;>>> 今天我們很高興地宣布 Python Fire 開源。Python Fire 可從任何 Python 代碼生成命令行接口&#xff08;command line interfaces (CLIs)&#xff09;&#xff0c;簡單地調用任意 Python 程序中的 Fire 函數以將那個…

tcp ip計算機網絡協議,一篇文章帶你熟悉 TCP/IP 協議-(一)

一、 計算機網絡體系結構分層不難看出&#xff0c;TCP/IP 與 OSI 在分層模塊上稍有區別。OSI 參考模型注重“通信協議必要的功能是什么”&#xff0c;而 TCP/IP 則更強調“在計算機上實現協議應該開發哪種程序”。二、 TCP/IP 基礎1. TCP/IP 的具體含義從字面意義上講&#xff…

遠程控制python

import telnetlibdef telnetDoSomething(IP,user,passwd,command):try:# 連接服務器telnet telnetlib.Telnet(IP)# 設置調試級別telnet.set_debuglevel(2)# 讀取輸入用戶名信息rt telnet.read_until("Login username:".encode("utf-8"))# 寫入用戶名tel…

Random Forest算法參數解釋及調優

文章介紹了如何對隨機森林模型進行參數調優 原文來自&#xff1a;http://www.analyticsvidhya.com/blog/2015/06/tuning-random-forest-model/ 為什么要調整機器學習算法&#xff1f; 一個月以前&#xff0c;我在kaggle上參加了一個名為TFI的比賽。 我第一次提交的結果在50%…

浮動問題

- 浮動很多時候是用來解決多列顯示的問題- 浮動之后變為inline-block(浮動文本必須制定width)- 浮動之后會脫離文檔流- 浮動后的元素不會存在margin的垂直方向的問題 - 浮動之后會影響周圍元素的布局- 浮動不會超出父級元素- 浮動效果只會影響后面的元素&#xff08;包括自己的…

Servlet3.0新特性

1 Servlet3.0新特性概述 使用要求&#xff1a;MyEclipse10.0或以上版本&#xff0c;發布到Tomcat7.0或以上版本&#xff0c;創建JavaEE6.0應用&#xff01;  Servlete3.0的主要新特性如下三部分&#xff1a;    使用WebServlet、WebFilter、WebListener三個注解來替代we…