99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代如何計算決策樹的各特征重要程度?
如何計算決策樹的各特征重要程度?
2023-04-07
收藏

決策樹是一種常用的機器學習算法,它可以對數(shù)據(jù)進行分類和預測。在決策樹中,特征(或屬性)重要性是指每個特征對模型準確性的貢獻程度。因此,了解如何計算特征重要性是非常有用的,可以幫助我們選擇最相關的特征,進而提高模型的性能。

本文將介紹三種計算特征重要性的方法:基于信息增益、基于基尼不純度和基于平均減少不純度。這些方法都可以用來計算特征重要性,并且在實踐中都取得了很好的效果。

  1. 基于信息增益

信息增益是一種用來評估一個特征決策樹分類能力的重要性的指標。它的定義是:特征A對樣本集D的信息增益(Gain(D, A))等于樣本集D的經(jīng)驗熵(H(D))與特征A條件下的經(jīng)驗熵(H(D|A))之差,即:

Gain(D, A) = H(D) - H(D|A)

其中,經(jīng)驗熵(H(D))衡量了樣本集D的不確定性,經(jīng)驗熵越大,樣本集的不確定性就越高;特征A條件下的經(jīng)驗熵(H(D|A))衡量的是在特征A給定的情況下,樣本集D的不確定性。如果特征A對分類任務有幫助,則H(D|A)會比H(D)小,因此信息增益越大,特征對分類能力的貢獻就越大。

在計算信息增益時,我們需要先計算經(jīng)驗熵和條件經(jīng)驗熵。然后,通過計算信息增益來確定每個特征的重要性,從而選擇最相關的特征。

  1. 基于基尼不純度

基尼不純度是另一種評估特征重要性的方法。它衡量的是從樣本中隨機選擇兩個樣本,其類別不一致的概率。這個概率越低,說明樣本的純度越高,也就是說該特征對分類任務的貢獻越大。

具體來說,假設樣本集合D中第k類樣本所占的比例為pk,則D的基尼指數(shù)定義為:

Gini(D) = 1 - ∑(pk)^2

對于樣本集合D來說,假設使用特征A對其進行劃分,得到了m個子集Di,其中第i個子集的樣本數(shù)為Di,并且屬于第k類的樣本在Di中所占的比例為pki,則特征A的基尼指數(shù)定義為:

Gini(D, A) = ∑(Di / D) × (1 - ∑(pki)^2)

特征A的重要性可以通過計算基尼指數(shù)的減少量來確定。具體來說,我們可以計算使用特征A進行劃分前后的基尼指數(shù),然后計算兩者之差,即:

ΔGini(D, A) = Gini(D) - Gini(D, A)

如果ΔGini越大,說明特征A對分類任務的貢獻越大,因此特征A的重要性就越高。

  1. 基于平均減少不純度

平均減少不純度(Mean Decrease Impurity,MDI)是一種計算特征重要性的方法,它對應的是決策樹算法中的 CART

算法。該方法通過計算每個特征決策樹中被用作分裂標準的次數(shù)和該特征分裂所帶來的平均減少不純度,來評估特征的重要程度。

具體來說,對于某個特征A,我們可以計算它在所有節(jié)點上的分裂次數(shù)和每次分裂所帶來的平均減少不純度(Impurity Decrease,ID)。然后將每個節(jié)點的ID加權求和即可得到特征A的MDI。

CART算法使用的是基尼不純度來評估節(jié)點的不純度,因此其計算方法與基于基尼不純度的特征重要性計算方法類似。

總結

本文介紹了三種常用的特征重要性計算方法:基于信息增益、基于基尼不純度和基于平均減少不純度。這些方法都可以用來計算特征的重要性,并且在實踐中都取得了很好的效果。選擇哪種方法取決于具體情況和數(shù)據(jù)集的特點。在實際應用中,我們可以結合多種方法來評估特征的重要性,以獲得更全面的結果。

相信讀完上文,你對算法已經(jīng)有了全面認識。若想進一步探索機器學習的前沿知識,強烈推薦機器學習半監(jiān)督學習課程。

學習入口:https://edu.cda.cn/goods/show/3826?targetId=6730&preview=0
涵蓋核心算法,結合多領域實戰(zhàn)案例,還會持續(xù)更新,無論是新手入門還是高手進階都很合適。趕緊點擊鏈接開啟學習吧!

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師考試動態(tài)
數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }