1. 10大機(jī)器學(xué)習(xí)算法優(yōu)缺點(diǎn)詳解

        共 6639字,需瀏覽 14分鐘

         ·

        2023-10-26 15:34

        源:Abner說AI


        1.邏輯回歸


        二項(xiàng)logistic回歸模型是一種分類模型,由條件概率分布 P(Y|X)表示,形式為參數(shù)化的logistic分布。這里隨機(jī)變量X取值為實(shí)數(shù),隨機(jī)變量Y取值為1或0。可以通過有監(jiān)督的方法來估計(jì)模型參數(shù)。


        優(yōu)點(diǎn):

        1. 計(jì)算代價(jià)不高,易于理解和實(shí)現(xiàn);

        2. 適用于需要得到有分類概率額場景;

        3.對(duì)小數(shù)據(jù)噪聲的魯棒性好,不會(huì)收輕微的多重共線性的影響。


        缺點(diǎn):

        1. 容易欠擬合,分類精度可能不高;

        2.數(shù)據(jù)有缺失和特征很大的時(shí)候表現(xiàn)不好 。


        2.支持向量機(jī)


        對(duì)于兩類線性可分學(xué)習(xí)任務(wù),SVM找到一個(gè)間隔最大的超平面將兩類樣本分開,最大間隔能夠保證該超平面具有最好的泛化能力。


        優(yōu)點(diǎn):

        1. 可以解決小樣本情況下的ML問題;

        2. 可以提高泛化性能;

        3. 可以解決高維問題,避免維數(shù)災(zāi)難;

        4. 可以解決非線性問題;

        5. 可以避免神經(jīng)網(wǎng)絡(luò) 結(jié)構(gòu)選擇和局部極小點(diǎn)問題;

        參數(shù)C和g的選擇對(duì)分類性能的影響:

        C是懲罰系數(shù),C越大,交叉validation高,容易過學(xué)習(xí);

        g是核函數(shù) 的到達(dá)0的速率,g越小,函數(shù)下降快,交叉validation高,也容易造成過學(xué)習(xí)。


        缺點(diǎn):

        1. 對(duì)缺失數(shù)據(jù)敏感;

        2. 對(duì)非線性問題沒有通用解決方案,必須謹(jǐn)慎選擇kernel function來處理。


        SVM算法的主要優(yōu)點(diǎn)有:

        1) 解決高維特征的分類問題和回歸問題很有效,在特征維度大于樣本數(shù)時(shí)依然有很好的效果。

        2) 僅僅使用一部分支持向量來做超平面的決策,無需依賴全部數(shù)據(jù)。

        3) 有大量的核函數(shù)可以使用,從而可以很靈活的來解決各種非線性的分類回歸問題。

        4)樣本量不是海量數(shù)據(jù)的時(shí)候,分類準(zhǔn)確率高,泛化能力強(qiáng)。


        SVM算法的主要缺點(diǎn)有:

        1) 如果特征維度遠(yuǎn)遠(yuǎn)大于樣本數(shù),則SVM表現(xiàn)一般。

        2) SVM在樣本量非常大,核函數(shù)映射維度非常高時(shí),計(jì)算量過大,不太適合使用。(不適用于大數(shù)據(jù)集)

        3)非線性問題的核函數(shù)的選擇沒有通用標(biāo)準(zhǔn),難以選擇一個(gè)合適的核函數(shù)。

        4)SVM對(duì)缺失數(shù)據(jù)敏感。


        1)一般推薦在做訓(xùn)練之前對(duì)數(shù)據(jù)進(jìn)行歸一化,當(dāng)然測試集中的數(shù)據(jù)也需要?dú)w一化。

        2)在特征數(shù)非常多的情況下,或者樣本數(shù)遠(yuǎn)小于特征數(shù)的時(shí)候,使用線性核,效果已經(jīng)很好,并且只需要選擇懲罰系數(shù)C即可。

        3)在選擇核函數(shù)時(shí),如果線性擬合不好,一般推薦使用默認(rèn)的高斯核'rbf'。這時(shí)我們主要需要對(duì)懲罰系數(shù)C和核函數(shù)參數(shù)γ進(jìn)行艱苦的調(diào)參,通過多輪的交叉驗(yàn)證選擇合適的懲罰系數(shù)C和核函數(shù)參數(shù)γ。

        4)理論上高斯核不會(huì)比線性核差,但是這個(gè)理論卻建立在要花費(fèi)更多的時(shí)間來調(diào)參上。所以實(shí)際上能用線性核解決問題我們盡量使用線性核。


        3.決策樹


        一種啟發(fā)式算法,核心是在決策樹各個(gè)節(jié)點(diǎn)上應(yīng)用信息增益 等準(zhǔn)則來選取特征,進(jìn)而遞歸地構(gòu)造決策樹。


        優(yōu)點(diǎn):

        1. 計(jì)算復(fù)雜度不高,易于理解和解釋,可以理解決策樹所表達(dá)的意義;

        2. 數(shù)據(jù)預(yù)處理階段比較簡單,且可以處理缺失數(shù)據(jù);

        3. 能夠同時(shí)處理數(shù)據(jù)型和分類型屬性,且可對(duì)有許多屬性的數(shù)據(jù)集構(gòu)造決策樹;

        4. 是一個(gè)白盒模型,給定一個(gè)觀察模型,則根據(jù)所產(chǎn)生的決策樹很容易推斷出相應(yīng)的邏輯表達(dá)式;

        5. 在相對(duì)短的時(shí)間內(nèi)能夠?qū)Υ髷?shù)據(jù)集合做出可行且效果良好的分類結(jié)果。

        6. 可以對(duì)有許多屬性的數(shù)據(jù)集構(gòu)造決策樹。


        缺點(diǎn):

        1. 對(duì)于那些各類別樣本數(shù)目不一致的數(shù)據(jù),信息增益的結(jié)果偏向于那些具有更多數(shù)值的屬性;

        2. 對(duì)噪聲數(shù)據(jù)較為敏感;

        3. 容易出現(xiàn)過擬合問題;

        4. 忽略了數(shù)據(jù)集中屬性之間的相關(guān)性;

        5.處理缺失數(shù)據(jù)時(shí)的困難


        決策樹優(yōu)點(diǎn):

        1)簡單直觀,生成的決策樹很直觀。

        2)基本不需要預(yù)處理,不需要提前歸一化,處理缺失值。

        3)使用決策樹預(yù)測的代價(jià)是O(log_2m)。m為樣本數(shù)。

        4)既可以處理離散值也可以處理連續(xù)值。很多算法只是專注于離散值或者連續(xù)值。

        5)可以處理多維度輸出的分類問題。

        6)相比于神經(jīng)網(wǎng)絡(luò)之類的黑盒分類模型,決策樹在邏輯上可以得到很好的解釋

        7)可以交叉驗(yàn)證的剪枝來選擇模型,從而提高泛化能力。

        8)對(duì)于異常點(diǎn)的容錯(cuò)能力好,健壯性高。


        決策樹算法的缺點(diǎn):

        1)決策樹算法非常容易過擬合,導(dǎo)致泛化能力不強(qiáng)。可以通過設(shè)置節(jié)點(diǎn)最少樣本數(shù)量和限制決策樹深度來改進(jìn)。

        2)決策樹會(huì)因?yàn)闃颖景l(fā)生一點(diǎn)點(diǎn)的改動(dòng),就會(huì)導(dǎo)致樹結(jié)構(gòu)的劇烈改變。這個(gè)可以通過集成學(xué)習(xí)之類的方法解決。

        3)尋找最優(yōu)的決策樹是一個(gè)NP難的問題,我們一般是通過啟發(fā)式方法,容易陷入局部最優(yōu)??梢酝ㄟ^集成學(xué)習(xí)之類的方法來改善。

        4)有些比較復(fù)雜的關(guān)系,決策樹很難學(xué)習(xí),比如異或。這個(gè)就沒有辦法了,一般這種關(guān)系可以換神經(jīng)網(wǎng)絡(luò)分類方法來解決。

        5)如果某些特征的樣本比例過大,生成決策樹容易偏向于這些特征。這個(gè)可以通過調(diào)節(jié)樣本權(quán)重來改善。


        4.KNN算法


        一種惰性分類方法,從訓(xùn)練集中找出k個(gè)最接近測試對(duì)象的訓(xùn)練對(duì)象,再從這k個(gè)訓(xùn)練對(duì)象中找出居于主導(dǎo)的類別,將其賦給測試對(duì)象。


        優(yōu)點(diǎn):

        1. 簡單有效,容易理解和實(shí)現(xiàn);

        2. 重新訓(xùn)練的代價(jià)較低(類別體系的變化和訓(xùn)練集的變化);

        3. 計(jì)算時(shí)間和空間線性于訓(xùn)練集的規(guī)模;

        4. 錯(cuò)誤率漸進(jìn)收斂于貝葉斯錯(cuò)誤率,可作為貝葉斯的近似;

        5. 適合處理多模分類和多標(biāo)簽分類問題;

        6. 對(duì)于類域的交叉或重疊較多的待分類樣本集較為適合。


        缺點(diǎn):

        1. 是懶散學(xué)習(xí)方法,比一些積極學(xué)習(xí)的算法要慢;

        2. 計(jì)算量比較大,需對(duì)樣本點(diǎn)進(jìn)行剪輯;

        3. 對(duì)于樣本不平衡的數(shù)據(jù)集效果不佳,可采用加權(quán)投票法改進(jìn);

        4. k值的選擇對(duì)分類效果有很大影響,較小的話對(duì)噪聲敏感,需估計(jì)最佳k值;

        5.可解釋性不強(qiáng),計(jì)算量大。


        KNN的主要優(yōu)點(diǎn)有:

        1) 理論成熟,思想簡單,既可以用來做分類也可以用來做回歸;

        2) 可用于非線性分類;

        3) 訓(xùn)練時(shí)間復(fù)雜度 比支持向量機(jī)之類的算法低,僅為O(n);

        4) 和樸素貝葉斯之類的算法比,對(duì)數(shù)據(jù)沒有假設(shè),準(zhǔn)確度高,對(duì)異常點(diǎn)不敏感;

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

        6)該算法比較適用于樣本容量比較大的類域的自動(dòng)分類,而那些樣本容量較小的類域采用這種算法比較容易產(chǎn)生誤分。


        KNN的主要缺點(diǎn)有:

        1)計(jì)算量大,尤其是特征數(shù)非常多的時(shí)候;

        2)樣本不平衡的時(shí)候,對(duì)稀有類別的預(yù)測準(zhǔn)確率低;

        3)KD樹,球樹之類的模型建立需要大量的內(nèi)存;

        4)使用懶散學(xué)習(xí)方法,基本上不學(xué)習(xí),導(dǎo)致預(yù)測時(shí)速度比起邏輯回歸之類的算法慢;

        5)相比決策樹模型,KNN模型可解釋性不強(qiáng)。


        5.樸素貝葉斯算法


        貝葉斯分類器的分類原理是利用各個(gè)類別的先驗(yàn)概率,再利用貝葉斯公式及獨(dú)立性假設(shè)計(jì)算出屬性的類別概率以及對(duì)象的后驗(yàn)概率,即該對(duì)象屬于某一類的概率,選擇具有最大后驗(yàn)概率的類作為該對(duì)象所屬的類別。


        優(yōu)點(diǎn):

        1. 數(shù)學(xué)基礎(chǔ)堅(jiān)實(shí),分類效率穩(wěn)定,容易解釋;

        2. 所需估計(jì)的參數(shù)很少,對(duì)缺失數(shù)據(jù)不太敏感;

        3. 無需復(fù)雜的迭代求解框架,適用于規(guī)模巨大的數(shù)據(jù)集。


        缺點(diǎn):

        1. 屬性之間的獨(dú)立性假設(shè)往往不成立(可考慮用聚類算法先將相關(guān)性較大的屬性進(jìn)行聚類);

        2. 需要知道先驗(yàn)概率,分類決策存在錯(cuò)誤率。


        樸素貝葉斯的主要優(yōu)點(diǎn)有:

        1)樸素貝葉斯模型發(fā)源于古典數(shù)學(xué)理論,有穩(wěn)定的分類效率。

        2)對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好,能個(gè)處理多分類任務(wù),適合增量式訓(xùn)練,尤其是數(shù)據(jù)量超出內(nèi)存時(shí),我們可以一批批的去增量訓(xùn)練。

        3)對(duì)缺失數(shù)據(jù)不太敏感,算法也比較簡單,常用于文本分類。


        樸素貝葉斯的主要缺點(diǎn)有:   

        1) 理論上,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實(shí)際上并非總是如此,這是因?yàn)闃闼刎惾~斯模型給定輸出類別的情況下,假設(shè)屬性之間相互獨(dú)立,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的,在屬性個(gè)數(shù)比較多或者屬性之間相關(guān)性較大時(shí),分類效果不好。而在屬性相關(guān)性較小時(shí),樸素貝葉斯性能最為良好。對(duì)于這一點(diǎn),有半樸素貝葉斯之類的算法通過考慮部分關(guān)聯(lián)性適度改進(jìn)。

        2)需要知道先驗(yàn)概率,且先驗(yàn)概率很多時(shí)候取決于假設(shè),假設(shè)的模型可以有很多種,因此在某些時(shí)候會(huì)由于假設(shè)的先驗(yàn)?zāi)P偷脑驅(qū)е骂A(yù)測效果不佳。

        3)由于我們是通過先驗(yàn)和數(shù)據(jù)來決定后驗(yàn)的概率從而決定分類,所以分類決策存在一定的錯(cuò)誤率。

        4)對(duì)輸入數(shù)據(jù)的表達(dá)形式很敏感。


        6.隨機(jī)森林算法


        RF的主要優(yōu)點(diǎn)有:

        1) 訓(xùn)練可以高度并行化,對(duì)于大數(shù)據(jù)時(shí)代的大樣本訓(xùn)練速度有優(yōu)勢。最主要的優(yōu)點(diǎn)。

        2) 由于可以隨機(jī)選擇決策樹節(jié)點(diǎn)劃分特征,這樣在樣本特征維度很高的時(shí)候,仍然能高效的訓(xùn)練模型。

        3) 在訓(xùn)練后,可以給出各個(gè)特征對(duì)于輸出的重要性

        4) 由于采用了隨機(jī)采樣,訓(xùn)練出的模型的方差小,泛化能力強(qiáng)。

        5) 相對(duì)于Boosting系列的Adaboost和GBDT, RF實(shí)現(xiàn)比較簡單。

        6) 對(duì)部分特征缺失不敏感。


        RF的主要缺點(diǎn)有:

        1)在某些噪音比較大的樣本集上,RF模型容易陷入過擬合。

        2) 取值劃分比較多的特征容易對(duì)RF的決策產(chǎn)生更大的影響,從而影響擬合的模型的效果。


        7.AdaBoost算法


        提升方法是從弱學(xué)習(xí)算法出發(fā),反復(fù)學(xué)習(xí),得到一系列的弱分類器(即基本分類器),然后組合這些弱分類器,構(gòu)成一個(gè)強(qiáng)分類器,大多數(shù)的提升方法都是改變訓(xùn)練數(shù)據(jù)集的概率分布(訓(xùn)練數(shù)據(jù)的權(quán)值分布),針對(duì)不同的訓(xùn)練數(shù)據(jù)分布調(diào)用弱學(xué)習(xí)算法學(xué)習(xí)一系列的弱分類器。


        優(yōu)點(diǎn):

        1. 分類精度高;

        2. 可以使用各種方法構(gòu)建子分類器 ,Adaboost算法提供的是框架;

        3. 簡單,且不用做特征篩選;

        4. 不會(huì)造成overfitting。


        缺點(diǎn):

        1. 對(duì)分類錯(cuò)誤的樣本多次被分錯(cuò)而多次加權(quán)后,導(dǎo)致權(quán)重過大,影響分類器的選擇,造成退化問題;(需改進(jìn)權(quán)值更新方式)

        2. 數(shù)據(jù)不平衡問題導(dǎo)致分類精度的急劇下降;

        3. 算法訓(xùn)練耗時(shí),拓展困難;

        4. 存在過擬合,魯棒性不強(qiáng)等問題。


        Adaboost的主要優(yōu)點(diǎn)有:

        1)Adaboost作為分類器時(shí),分類精度很高

        2)在Adaboost的框架下,可以使用各種回歸分類 模型來構(gòu)建弱學(xué)習(xí)器,非常靈活。

        3)作為簡單的二元分類器時(shí),構(gòu)造簡單,結(jié)果可理解。

        4)不容易發(fā)生過擬合


        Adaboost的主要缺點(diǎn)有:

        1)對(duì)異常樣本敏感,異常樣本在迭代中可能會(huì)獲得較高的權(quán)重,影響最終的強(qiáng)學(xué)習(xí)器的預(yù)測準(zhǔn)確性。


        8.GBDT


        GBDT主要的優(yōu)點(diǎn)有:

        1) 可以靈活處理各種類型的數(shù)據(jù),包括連續(xù)值和離散值。

        2) 在相對(duì)少的調(diào)參時(shí)間情況下,預(yù)測的準(zhǔn)確率也可以比較高。這個(gè)是相對(duì)SVM來說的。

        3)使用一些健壯的損失函數(shù),對(duì)異常值的魯棒性非常強(qiáng)。比如 Huber損失函數(shù)和Quantile損失函數(shù)。


        GBDT的主要缺點(diǎn)有:

        1) 由于弱學(xué)習(xí)器之間存在依賴關(guān)系,難以并行訓(xùn)練數(shù)據(jù)。不過可以通過自采樣的SGBT來達(dá)到部分并行。


        9.XGBoost算法


        1.XGBoost與GBDT相比,其優(yōu)勢:

        將樹模型的復(fù)雜度加入到正則項(xiàng)中,來避免過擬合,因此泛化性能會(huì)優(yōu)于GBDT。

        損失函數(shù)用泰勒展開式展開,同時(shí)用到了一階和二階導(dǎo)數(shù),可以加快優(yōu)化速度。

        GBDT只支持CART作為基學(xué)習(xí)器,XGBoost還支持線性分類器作為基學(xué)習(xí)器。

        引進(jìn)了特征子采樣,像隨機(jī)森林那樣,既能避免過擬合,又能減少計(jì)算。

        在尋找最優(yōu)分割點(diǎn)時(shí),考慮到傳統(tǒng)的貪心算法效率較低,實(shí)現(xiàn)了一種近似貪心算法,用來加速和減少內(nèi)存小號(hào),除此之外,還考慮了稀疏數(shù)據(jù)集合缺失值的處理。

        XGBoost支持并行處理。XGBoost的并行不是模型生成的并行,而是在特征上的并行,將特征排序后以block的形式存儲(chǔ)在內(nèi)存中,在后面迭代重復(fù)使用這個(gè)結(jié)構(gòu)。這個(gè)block也使得并行化成為了可能,其次在節(jié)點(diǎn)分裂時(shí),計(jì)算每個(gè)特征的增益,最終選擇增益最大的那個(gè)特征去做分割,那么各個(gè)特征的增益計(jì)算就可以開多線程進(jìn)行。


        2.與lightGBM相比的不足點(diǎn):

        XGBoosting采用預(yù)排序,在迭代之前,對(duì)結(jié)點(diǎn)的特征做預(yù)排序,遍歷選擇最優(yōu)分割點(diǎn),數(shù)據(jù)量大時(shí),貪心法耗時(shí),LightGBM方法采用histogram算法,占用的內(nèi)存低,數(shù)據(jù)分割的復(fù)雜度更低。

        XGBoosting采用level-wise生成決策樹,同時(shí)分裂同一層的葉子,從而進(jìn)行多線程優(yōu)化,不容易過擬合,但很多葉子節(jié)點(diǎn)的分裂增益較低,沒必要進(jìn)行跟進(jìn)一步的分裂,這就帶來了不必要的開銷;LightGBM采用深度優(yōu)化,leaf-wise生長策略,每次從當(dāng)前葉子中選擇增益最大的結(jié)點(diǎn)進(jìn)行分裂,循環(huán)迭代,但會(huì)生長出更深的決策樹,產(chǎn)生過擬合,因此引入了一個(gè)閾值進(jìn)行限制,防止過擬合。


        10.人工神經(jīng)網(wǎng)絡(luò)


        優(yōu)點(diǎn):

        1. 分類的準(zhǔn)確度高,并行分布處理能力強(qiáng),分布存儲(chǔ)及學(xué)習(xí)能力強(qiáng);

        2. 對(duì)噪聲神經(jīng)有較強(qiáng)的魯棒性和容錯(cuò)能力,能充分逼近復(fù)雜的非線性關(guān)系,具備聯(lián)想記憶的功能等。


        缺點(diǎn):

        1. 神經(jīng)網(wǎng)絡(luò)需要大量的參數(shù),如網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、權(quán)值和閾值的初始值;

        2. 不能觀察之間的學(xué)習(xí)過程,輸出結(jié)果難以解釋,會(huì)影響到結(jié)果的可信度和可接受程度;

        3. 學(xué)習(xí)時(shí)間過長,甚至可能達(dá)不到學(xué)習(xí)的目的。


        加入知識(shí)星球【我們談?wù)摂?shù)據(jù)科學(xué)】

        600+小伙伴一起學(xué)習(xí)!





        瀏覽 1124
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 色多多视频在线观看 | 丁香花在线电影小说 | 另类一区 | 国产男女啪啪 | 亚洲中文电影 |