1.信息增益和基尼系數(shù)的異同點(diǎn)
信息增益和基尼系數(shù)都是用于評價(jià)決策樹分裂節(jié)點(diǎn)的指標(biāo),它們有以下主要的相同點(diǎn)和不同點(diǎn):
相同點(diǎn):
- 都用于測度數(shù)據(jù)集的無序程度(impurity),可以評價(jià)分裂后的無序程度減少量
- 取值范圍都在0到1之間,0表示完全有序
- 都遵循同一思路,優(yōu)先選擇造成無序程度最大減少的特征進(jìn)行分裂
不同點(diǎn):
- 計(jì)算方式不同
- 信息增益基于香農(nóng)熵,衡量分裂前后信息的變化量
- 基尼系數(shù)基于數(shù)據(jù)集標(biāo)記的概率分布,衡量分裂前后不確定性變化量
- 信息增益更傾向選擇取值較多的特征
- 基尼系數(shù)在小數(shù)據(jù)集上表現(xiàn)更穩(wěn)定
綜合來說,兩者都可以有效指導(dǎo)決策樹的特征選擇,但計(jì)算和偏好上有一定差異。需要根據(jù)數(shù)據(jù)集和問題領(lǐng)域選擇合適的指標(biāo)。一般來說,分類問題使用信息增益,回歸問題使用基尼系數(shù)的情況較多。
2.如何判斷是使用的信息增益還是基尼指數(shù)
決策樹在選擇特征時(shí)使用的指標(biāo),決定使用信息增益還是基尼系數(shù)主要取決于以下兩個因素:
算法實(shí)現(xiàn)
不同的決策樹算法實(shí)現(xiàn)會有默認(rèn)的指標(biāo)選擇。例如:
- scikit-learn中的DecisionTreeClassifier默認(rèn)使用基尼系數(shù)
- CART算法通常默認(rèn)使用基尼系數(shù)
- ID3算法默認(rèn)使用信息增益
- 需要查看具體的算法實(shí)現(xiàn)來確認(rèn)默認(rèn)使用的是哪個指標(biāo)。
參數(shù)設(shè)定
一些算法實(shí)現(xiàn)同時(shí)支持信息增益和基尼系數(shù)兩種指標(biāo),可以通過參數(shù)進(jìn)行設(shè)定。
例如scikit-learn中的DecisionTreeClassifier,可以通過criterion參數(shù)設(shè)定:
- criterion='gini' 使用基尼系數(shù)
- criterion='entropy' 使用信息增益
所以綜合以上兩點(diǎn),可以查看算法的具體實(shí)現(xiàn),以及參數(shù)配置,來判斷該算法是否使用信息增益或基尼系數(shù)作為劃分特征的評價(jià)指標(biāo)。大多數(shù)實(shí)現(xiàn)會有默認(rèn)的指標(biāo),也支持通過參數(shù)進(jìn)行修改。理解算法的原理可以幫助我們做出正確的判斷。
3.各個算法的默認(rèn)參數(shù)
常見的幾種決策樹算法的參數(shù)默認(rèn)使用的特征劃分指標(biāo)如下:
- ID3算法:默認(rèn)使用信息增益(information gain)
- C4.5算法:默認(rèn)使用信息增益
- CART算法:默認(rèn)使用基尼系數(shù)(Gini impurity)
- Scikit-Learn的DecisionTreeClassifier:默認(rèn)使用基尼系數(shù)
- Scikit-Learn的DecisionTreeRegressor:默認(rèn)使用均方差(mean squared error)
- Spark MLlib的DecisionTree:默認(rèn)使用基尼系數(shù)
- XGBoost: 默認(rèn)使用基尼系數(shù)
- LightGBM: 默認(rèn)使用基尼系數(shù)
所以信息增益更多地在ID3、C4.5中被作為默認(rèn)指標(biāo)。
而基尼系數(shù)被更多地應(yīng)用于CART、Scikit-Learn中的決策樹,以及集成算法(隨機(jī)森林、GBDT等)中。
當(dāng)然,許多算法實(shí)現(xiàn)也提供了通過參數(shù)修改指標(biāo)的功能。
正確理解并配置算法的參數(shù),可以幫助我們構(gòu)建出有效的決策樹模型。
4.與默認(rèn)指標(biāo)不同的設(shè)定
LightGBM也可以使用信息增益作為決策樹劃分的指標(biāo)。
LightGBM默認(rèn)使用基尼系數(shù)來選擇劃分特征,但也提供了使用信息增益的功能選項(xiàng)。
具體來說,在LightGBM的算法參數(shù)中,有一個名為"metric"的參數(shù),它決定了評價(jià)特征劃分的指標(biāo)。默認(rèn)值為"None",表示使用基尼系數(shù)。
如果設(shè)置metric='entropy',則會使用信息增益來選擇特征,所以雖然此時(shí)假如不設(shè)定具體的參數(shù)會默認(rèn)使用基尼指數(shù)來進(jìn)行特征劃分,但是也可以通過修改參數(shù)來使用信息增益進(jìn)行特征選擇。
import lightgbm as lgb
params = {'metric': 'entropy'}
model = lgb.train(params, lgb_dataset)
?所以您看到的LightGBM使用信息增益(entropy),很可能是通過指定了這個metric參數(shù)來實(shí)現(xiàn)的。
盡管默認(rèn)是基尼系數(shù),但LightGBM提供了靈活的指標(biāo)選擇,我們可以根據(jù)問題需要進(jìn)行配置。
5.根據(jù)不同的情況選擇特征
在決策樹算法中,根據(jù)不同的情況選擇使用信息增益或基尼系數(shù)的一些經(jīng)驗(yàn)準(zhǔn)則如下:文章來源:http://www.zghlxwxcb.cn/news/detail-693935.html
- 分類問題更傾向使用信息增益,回歸問題更傾向使用基尼系數(shù)。
- 如果特征取值范圍差異很大,信息增益更適合,因?yàn)樗蜻x擇取值范圍廣的特征。
- 如果樣本量少于50,基尼系數(shù)表現(xiàn)更穩(wěn)定。
- 類別不均衡的數(shù)據(jù)集建議使用信息增益,因?yàn)榛嵯禂?shù)容易偏向主要類別。
- 需要快速構(gòu)建模型,基尼系數(shù)計(jì)算上更有優(yōu)勢。
- 對訓(xùn)練時(shí)間敏感的大數(shù)據(jù)集,基尼系數(shù)更高效。
- 喜好樹的結(jié)構(gòu)簡單的情況,基尼系數(shù)可能更合適。
- 想要獲得可解釋性強(qiáng)的樹,信息增益更適合。
總結(jié)一下,信息增益偏向分類問題,基尼系數(shù)偏向回歸;信息增益適用于取值范圍差異大和類別不均衡的數(shù)據(jù);基尼系數(shù)在小樣本和大數(shù)據(jù)集上表現(xiàn)更好??梢愿鶕?jù)數(shù)據(jù)集統(tǒng)計(jì)特點(diǎn)和問題需求進(jìn)行選擇。也可以嘗試兩者,看分類準(zhǔn)確率或回歸效果哪個指標(biāo)更優(yōu)。文章來源地址http://www.zghlxwxcb.cn/news/detail-693935.html
importances = svr.coef_
sorted_idx = np.argsort(np.abs(importances))[::-1]
到了這里,關(guān)于importance中信息增益和基尼系數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!