日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习面试——XGBoost,GBDT,RF(上)

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习面试——XGBoost,GBDT,RF(上) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、常見的集成思想

bagging:基學(xué)習(xí)器之間并行訓(xùn)練,且學(xué)習(xí)器之間沒有依賴,像是集體決策的過程,每個個體都進(jìn)行單獨(dú)學(xué)習(xí),再通過投票的方式做最后的集體決策。常見的算法有隨機(jī)森林

boosting:基學(xué)習(xí)器之間串行訓(xùn)練,且學(xué)習(xí)器之間存在依賴,將基學(xué)習(xí)器層層疊加,每一層在訓(xùn)練的時(shí)候,對前一層基學(xué)習(xí)器分錯的樣本給予更高的權(quán)重。類似于人類的學(xué)習(xí)過程,對于錯誤,進(jìn)行加強(qiáng)學(xué)習(xí),直到犯錯誤的次數(shù)減少到很低的程度。常見的算法有AdaBoost、GBDT、XGBoost

Stacking:首先使用原始數(shù)據(jù)訓(xùn)練出一級學(xué)習(xí)器,將一級學(xué)習(xí)器的輸出作為輸入并使用對應(yīng)原始標(biāo)記作為新標(biāo)記,組成新的數(shù)據(jù)集來訓(xùn)練二級學(xué)習(xí)器(結(jié)合學(xué)習(xí)器)。常用于模型融合。

2、從偏差和方差的角度解釋Bagging和Boosting

偏差是由于分類器的表達(dá)能力有限導(dǎo)致的系統(tǒng)性錯誤;

方差是由于分類器對于樣本分布過于敏感,導(dǎo)致在訓(xùn)練樣本數(shù)較少時(shí),產(chǎn)生過擬合;

bagging是采用分而治之策略,通過對訓(xùn)練樣本進(jìn)行多次采樣,并分別訓(xùn)練出不同模型,然后做綜合,減小集成分類器之間的方差。

boosting是通過逐步聚焦于基學(xué)習(xí)器分錯的樣本,減小集成分類器的偏差。

2、隨機(jī)森林的隨機(jī)性?

數(shù)據(jù)集:有放回隨機(jī)取樣

特征:隨機(jī)選取特征,進(jìn)行分割點(diǎn)計(jì)算

3、Adboost、提升樹(boosting tree),梯度提升樹的異同?

相同:

  • 加法模型:模型是基學(xué)習(xí)器進(jìn)行累加,得到一個最終的加法模型。
  • 前向分步算法:從前向后,每一步只學(xué)習(xí)一個基函數(shù)及其系數(shù),逐步逼近優(yōu)化目標(biāo)函數(shù),簡化優(yōu)化的復(fù)雜度。

區(qū)別:

Adaboost的實(shí)現(xiàn)步驟:

(1)初始化權(quán)重分布,假設(shè)模型有均勻的權(quán)值分布。

(2)對數(shù)據(jù)進(jìn)行學(xué)習(xí),計(jì)算Gm(分類器)在訓(xùn)練數(shù)據(jù)集上的分類誤差率,

(3)計(jì)算Gm(分類器)系數(shù),系數(shù)代表在最終分類器上的重要性。

(4)更新權(quán)重(m步的權(quán)重分布),

(5)對基學(xué)習(xí)器進(jìn)行累加,組成線性組合,得到最終的分類器:

注釋:I(x)是指示函數(shù),sign(x)是符號函數(shù)。

,

提升樹(Boosting Tree)的實(shí)現(xiàn)步驟:

提升方法實(shí)際采用加法模型和前向分布算法,以決策樹為基函數(shù)的提升方法稱為提升樹,對分類問題決策樹是二叉分類樹,損失函數(shù)時(shí)指數(shù)損失,對于回歸問題決策樹是二叉回歸樹,損失函數(shù)是均方損失。

分析:

其中,r是當(dāng)前模型擬合數(shù)據(jù)的殘差。

梯度提升樹(Gradient boosting DT):

將當(dāng)前模型損失函數(shù)的負(fù)梯度作為殘差的近似替換值。

4、RF和GBDT的區(qū)別

相同點(diǎn):都用了集成思想

不同點(diǎn):

  • RF是bagging思想,減小了方差,GBDT是boosting思想,減小了偏差
  • RF是串行,GBDT是并行
  • RF是分類和回歸樹,GBDT只能回歸樹
  • RF是采用投票進(jìn)行最終決策,GBDT是多棵樹累加決策
  • RF對異常值不敏感,且不需要?dú)w一化,GBDT對異常值敏感(串行),需要?dú)w一化(GBDT的樹是在上一顆樹的基礎(chǔ)上通過梯度下降求解最優(yōu)解,歸一化能收斂的更快,而隨機(jī)森林本來就是通過減少方差提高性能的,樹之間建立關(guān)系是獨(dú)立的,不需要?dú)w一化)

5、GBDT的缺點(diǎn)?

  • 在高維稀疏的數(shù)據(jù)集上,表現(xiàn)性不好。
  • 訓(xùn)練過程是串行,需要在決策樹內(nèi)部采用一些局部并行的手段提高訓(xùn)練速度。

6、GBDT和XGBoost的異同?

不同:

  • GBDT用了一階導(dǎo)數(shù)信息,XGBoost用了一階、二階導(dǎo)數(shù)信息
  • GBDT不執(zhí)行并行化,XGBoost在數(shù)據(jù)和特征方便增加了并行化處理,(數(shù)據(jù)采樣、特征重要性排序)
  • GBDT對異常值敏感,XGBoost新增了缺失值處理策略
  • GBDT只能是樹模型,XGBoost可以自定義基學(xué)習(xí)器
  • XGBoost增加了正則化的策略

7、Xgboost 如何尋找最優(yōu)特征?是有放回還是無放回呢?

Xgboost在訓(xùn)練的過程中給出各個特征的增益評分,最大增益的特征會被選出來作為分裂依據(jù),從而記憶了每個特征對在模型訓(xùn)練時(shí)的重要性。從根到葉子中間節(jié)點(diǎn)涉及某特征的次數(shù)作為該特征重要性排序。Xgboost是不放回,還支持子采樣和列采樣。

8、Xgboost為什么要用泰勒展開,優(yōu)勢在哪里?

XGBoost使用了一階和二階偏導(dǎo),二階導(dǎo)數(shù)有利于梯度下降的更快更準(zhǔn),使用泰勒展開取得函數(shù)做自變量的二階導(dǎo)數(shù)形式,可以再不選定損失函數(shù)具體形式的情況下,僅僅依靠輸入數(shù)據(jù)的值就可以進(jìn)行葉子分裂優(yōu)化算法,本質(zhì)上將損失函數(shù)的選取和模型算法優(yōu)化/參數(shù)選擇分開,這種去耦合增強(qiáng)了XGBoost的適用性,使得模型按需選取損失函數(shù)。

9、RF如何處理缺失值?

方法一:將數(shù)值型變量中的缺失值用其所對應(yīng)類別中的中位數(shù)替換。把描述型變量缺失的部分用所對應(yīng)類別出現(xiàn)最多的數(shù)值替代。

方法二:在方法一的基礎(chǔ)上做了升級,引入了權(quán)重變量,即對需要替換的數(shù)據(jù)先和其他數(shù)據(jù)做相似度測量,如果是分類變量,則用沒有缺失的觀測實(shí)例相似度的權(quán)重投票,如果是連續(xù)型變量,則用加權(quán)平均和進(jìn)行填充

10、XGBoost如何處理缺失值?

xgboost把缺失值當(dāng)做稀疏矩陣來對待,本身的在節(jié)點(diǎn)分裂時(shí)不考慮的缺失值的數(shù)值。缺失值數(shù)據(jù)會被分到左子樹和右子樹分別計(jì)算損失,選擇較優(yōu)的那一個。如果訓(xùn)練中沒有數(shù)據(jù)缺失,預(yù)測時(shí)出現(xiàn)了數(shù)據(jù)缺失,那么默認(rèn)被分類到右子樹。

11、隨機(jī)森林如何評估特征重要性?

12、XGBoost如何給特征評分?

在CART樹中,通過基尼指數(shù)選取分離點(diǎn)的特征,一個特征被選中的次數(shù)越多,該特征的評分就越高。

在XGboost中,枚舉不同的樹結(jié)構(gòu),利用打分函數(shù)來尋找最優(yōu)的結(jié)構(gòu)樹。從樹深度0開始,每個節(jié)點(diǎn)遍歷所有特征,對于單個特征,首先對特征的值進(jìn)行排序,然后線性掃描該特征進(jìn)行選擇最好的切割點(diǎn),再比較所有的特征,選擇信息增益增高的特征為當(dāng)前節(jié)點(diǎn)。

假設(shè)年齡這個特征,我們首先對年齡進(jìn)行排序,設(shè)定閾值a,將小于閾值a的分為一類,大于閾值a的分為一類,計(jì)算該特征的基尼指數(shù),若存在多個閾值,就會出現(xiàn)多個基尼指數(shù)值,選擇最大的那個為當(dāng)前的閾值,并計(jì)算所有特征(年齡、性別、職業(yè)等),選擇最大的gini指數(shù)的特征為當(dāng)前節(jié)點(diǎn)。這種只看到當(dāng)前節(jié)點(diǎn)的思想就是greddy exact。

引入新葉子的懲罰項(xiàng)是為了優(yōu)化目標(biāo)函數(shù),對應(yīng)了樹的剪枝,當(dāng)分割閾值小于懲罰項(xiàng),就忽略這個分割。

總結(jié)

以上是生活随笔為你收集整理的机器学习面试——XGBoost,GBDT,RF(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。