面試過程中經(jīng)常被問到各種算法的優(yōu)缺點(diǎn),特此整理爆办,持續(xù)更新中难咕。
1、決策樹
優(yōu)點(diǎn)
一押逼、 決策樹易于理解和解釋.人們?cè)谕ㄟ^解釋后都有能力去理解決策樹所表達(dá)的意義步藕。
二、 對(duì)于決策樹挑格,數(shù)據(jù)的準(zhǔn)備往往是簡單或者是不必要的.其他的技術(shù)往往要求先把數(shù)據(jù)一般化咙冗,比如去掉多余的或者空白的屬性。
三漂彤、 能夠同時(shí)處理數(shù)據(jù)型和常規(guī)型屬性雾消。其他的技術(shù)往往要求數(shù)據(jù)屬性的單一。
四挫望、 決策樹是一個(gè)白盒模型立润。如果給定一個(gè)觀察的模型,那么根據(jù)所產(chǎn)生的決策樹很容易推出相應(yīng)的邏輯表達(dá)式媳板。
五桑腮、 易于通過靜態(tài)測(cè)試來對(duì)模型進(jìn)行評(píng)測(cè)。表示有可能測(cè)量該模型的可信度蛉幸。
六破讨、 在相對(duì)短的時(shí)間內(nèi)能夠?qū)Υ笮蛿?shù)據(jù)源做出可行且效果良好的結(jié)果。
七奕纫、 可以對(duì)有許多屬性的數(shù)據(jù)集構(gòu)造決策樹提陶。
八、 決策樹可很好地?cái)U(kuò)展到大型數(shù)據(jù)庫中匹层,同時(shí)它的大小獨(dú)立于數(shù)據(jù)庫的大小隙笆。
缺點(diǎn)
一、 對(duì)于那些各類別樣本數(shù)量不一致的數(shù)據(jù)升筏,在決策樹當(dāng)中,信息增益的結(jié)果偏向于那些具有更多數(shù)值的特征撑柔。
二、 決策樹處理缺失數(shù)據(jù)時(shí)的困難您访。
三铅忿、 過度擬合問題的出現(xiàn)。
四洋只、 忽略數(shù)據(jù)集中屬性之間的相關(guān)性辆沦。
2、人工神經(jīng)網(wǎng)絡(luò)
優(yōu)點(diǎn)
分類的準(zhǔn)確度高,并行分布處理能力強(qiáng),分布存儲(chǔ)及學(xué)習(xí)能力強(qiáng)识虚,對(duì)噪聲神經(jīng)有較強(qiáng)的魯棒性和容錯(cuò)能力肢扯,能充分逼近復(fù)雜的非線性關(guān)系,具備聯(lián)想記憶的功能等担锤。
缺點(diǎn)
神經(jīng)網(wǎng)絡(luò)需要大量的參數(shù)蔚晨,如網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、權(quán)值和閾值的初始值肛循;不能觀察之間的學(xué)習(xí)過程铭腕,輸出結(jié)果難以解釋,會(huì)影響到結(jié)果的可信度和可接受程度多糠;學(xué)習(xí)時(shí)間過長,甚至可能達(dá)不到學(xué)習(xí)的目的累舷。
3、KNN算法
優(yōu)點(diǎn)
一夹孔、 簡單被盈、有效。
二搭伤、 重新訓(xùn)練的代價(jià)較低(類別體系的變化和訓(xùn)練集的變化只怎,在Web環(huán)境和電子商務(wù)應(yīng)用中是很常見的)。
三怜俐、 計(jì)算時(shí)間和空間線性于訓(xùn)練集的規(guī)模(在一些場合不算太大)身堡。
四、 由于KNN方法主要靠周圍有限的鄰近的樣本拍鲤,而不是靠判別類域的方法來確定所屬類別的贴谎,因此對(duì)于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合殿漠。
五赴精、 該算法比較適用于樣本容量比較大的類域的自動(dòng)分類,而那些樣本容量較小的類域采用這種算法比較容易產(chǎn)生誤分绞幌。
缺點(diǎn)
一蕾哟、 KNN算法是懶散學(xué)習(xí)方法(lazy learning,基本上不學(xué)習(xí)),一些積極學(xué)習(xí)的算法要快很多莲蜘。
二谭确、 類別評(píng)分不是規(guī)格化的(不像概率評(píng)分)。
三票渠、 輸出的可解釋性不強(qiáng)逐哈,例如決策樹的可解釋性較強(qiáng)。
四问顷、 該算法在分類時(shí)有個(gè)主要的不足是昂秃,當(dāng)樣本不平衡時(shí)禀梳,如一個(gè)類的樣本容量很大,而其他類樣本容量很小時(shí)肠骆,有可能導(dǎo)致當(dāng)輸入一個(gè)新樣本時(shí)算途,該樣本的K個(gè)鄰居中大容量類的樣本占多數(shù)。該算法只計(jì)算“最近的”鄰居樣本蚀腿,某一類的樣本數(shù)量很大嘴瓤,那么或者這類樣本并不接近目標(biāo)樣本,或者這類樣本很靠近目標(biāo)樣本莉钙。無論怎樣廓脆,數(shù)量并不能影響運(yùn)行結(jié)果〈庞瘢可以采用權(quán)值的方法(和該樣本距離小的鄰居權(quán)值大)來改進(jìn)停忿。
五、 計(jì)算量較大蚊伞。目前常用的解決方法是事先對(duì)已知樣本點(diǎn)進(jìn)行剪輯瞎嬉,事先去除對(duì)分類作用不大的樣本。
4厚柳、支持向量機(jī)(SVM)
優(yōu)點(diǎn)
一氧枣、 可以解決小樣本情況下的機(jī)器學(xué)習(xí)問題。
二别垮、 可以提高泛化性能便监。
三、 可以解決高維問題碳想。
四烧董、 可以解決非線性問題。
五胧奔、 可以避免神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇和局部極小點(diǎn)問題逊移。
缺點(diǎn)
一、 對(duì)缺失數(shù)據(jù)敏感龙填。
二胳泉、 對(duì)非線性問題沒有通用解決方案,必須謹(jǐn)慎選擇Kernelfunction來處理岩遗。
5扇商、樸素貝葉斯
優(yōu)點(diǎn)
一界牡、 樸素貝葉斯模型發(fā)源于古典數(shù)學(xué)理論反症,有著堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)疹蛉,以及穩(wěn)定的分類效率砾隅。
二、 NBC模型所需估計(jì)的參數(shù)很少漆改,對(duì)缺失數(shù)據(jù)不太敏感俘枫,算法也比較簡單钟病。
缺點(diǎn)
一、 理論上姑子,NBC模型與其他分類方法相比具有最小的誤差率嗤放。但是實(shí)際上并非總是如此,這是因?yàn)镹BC模型假設(shè)屬性之間相互獨(dú)立壁酬,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的(可以考慮用聚類算法先將相關(guān)性較大的屬性聚類),這給NBC模型的正確分類帶來了一定影響舆乔。在屬性個(gè)數(shù)比較多或者屬性之間相關(guān)性較大時(shí)希俩,NBC模型的分類效率比不上決策樹模型纲辽。而在屬性相關(guān)性較小時(shí)拖吼,NBC模型的性能最為良好吊档。
二怠硼、 需要知道先驗(yàn)概率香璃。
三葡秒、 分類決策存在錯(cuò)誤率
6眯牧、Adaboost算法
優(yōu)點(diǎn)
一、 adaboost是一種有很高精度的分類器炸站。
二旱易、 可以使用各種方法構(gòu)建子分類器腿堤,Adaboost算法提供的是框架如暖。
三盒至、 當(dāng)使用簡單分類器時(shí),計(jì)算出的結(jié)果是可以理解的樱衷。而且弱分類器構(gòu)造極其簡單。
四侄榴、 簡單癞蚕,不用做特征篩選涣达。
五度苔、 不用擔(dān)心overfitting浑度。
缺點(diǎn)
一箩张、AdaBoost迭代次數(shù)也就是弱分類器數(shù)目不太好設(shè)定甩骏,可以使用交叉驗(yàn)證來進(jìn)行確定先慷。
二饮笛、數(shù)據(jù)不平衡導(dǎo)致分類精度下降论熙。
三福青、訓(xùn)練比較耗時(shí),每次重新選擇當(dāng)前分類器最好切分點(diǎn)无午。
7媒役、邏輯回歸
優(yōu)點(diǎn)
一、預(yù)測(cè)結(jié)果是界于0和1之間的概率酣衷;
二次泽、可以適用于連續(xù)性和類別性自變量;
三、容易使用和解釋炬藤;
缺點(diǎn)
一御铃、對(duì)模型中自變量多重共線性較為敏感上真,例如兩個(gè)高度相關(guān)自變量同時(shí)放入模型羹膳,可能導(dǎo)致較弱的一個(gè)自變量回歸符號(hào)不符合預(yù)期睡互,符號(hào)被扭轉(zhuǎn)。?需要利用因子分析或者變量聚類分析等手段來選擇代表性的自變量陵像,以減少候選變量之間的相關(guān)性就珠;
二、預(yù)測(cè)結(jié)果呈“S”型醒颖,因此從log(odds)向概率轉(zhuǎn)化的過程是非線性的妻怎,在兩端隨著?log(odds)值的變化,概率變化很小泞歉,邊際值太小逼侦,slope太小,而中間概率的變化很大腰耙,很敏感榛丢。 導(dǎo)致很多區(qū)間的變量變化對(duì)目標(biāo)概率的影響沒有區(qū)分度,無法確定閥值挺庞。
8晰赞、隨機(jī)森林
優(yōu)點(diǎn)
一、 在當(dāng)前的很多數(shù)據(jù)集上,相對(duì)其他算法有著很大的優(yōu)勢(shì)宾肺,表現(xiàn)良好
二溯饵、它能夠處理很高維度(feature很多)的數(shù)據(jù),并且不用做特征選擇
三锨用、在訓(xùn)練完后丰刊,它能夠給出哪些feature比較重要
四、在創(chuàng)建隨機(jī)森林的時(shí)候增拥,對(duì)generlization error使用的是無偏估計(jì)啄巧,模型泛化能力強(qiáng)
五、訓(xùn)練速度快掌栅,容易做成并行化方法
六秩仆、在訓(xùn)練過程中,能夠檢測(cè)到feature間的互相影響
七猾封、 實(shí)現(xiàn)比較簡單
八澄耍、對(duì)于不平衡的數(shù)據(jù)集來說,它可以平衡誤差晌缘。
九齐莲、如果有很大一部分的特征遺失,仍可以維持準(zhǔn)確度磷箕。
缺點(diǎn)
一选酗、隨機(jī)森林已經(jīng)被證明在某些噪音較大的分類或回歸問題上會(huì)過擬
二、對(duì)于有不同取值的屬性的數(shù)據(jù)岳枷,取值劃分較多的屬性會(huì)對(duì)隨機(jī)森林產(chǎn)生更大的影響芒填,所以隨機(jī)森林在這種數(shù)據(jù)上產(chǎn)出的屬性權(quán)值是不可信的。
9空繁、GBDT
優(yōu)點(diǎn)
一殿衰、可以靈活處理各種類型的數(shù)據(jù),包括連續(xù)值和離散值盛泡。
二播玖、在相對(duì)少的調(diào)參時(shí)間情況下,預(yù)測(cè)的準(zhǔn)備率也可以比較高饭于。這個(gè)是相對(duì)SVM來說的蜀踏。
三、使用一些健壯的損失函數(shù)掰吕,對(duì)異常值的魯棒性非常強(qiáng)果覆。比如 Huber損失函數(shù)和Quantile損失函數(shù)。
缺點(diǎn)
一殖熟、由于弱學(xué)習(xí)器之間存在依賴關(guān)系局待,難以并行訓(xùn)練數(shù)據(jù)。不過可以通過自采樣的SGBT來達(dá)到部分并行。
參考原文
1钳榨、http://bbs.pinggu.org/thread-2604496-1-1.html
2舰罚、http://www.cnblogs.com/milkcoffeesugar/p/5769977.html
3、http://blog.csdn.net/u012422446/article/details/53034260
4薛耻、http://blog.sina.com.cn/s/blog_5dd0aaa50102vjq3.html
5营罢、http://blog.csdn.net/keepreder/article/details/47273297
6、http://www.cnblogs.com/pinard/p/6140514.html