python中如何實(shí)現(xiàn)信息增益和信息增益率
一、信息增益與信息增益率
1、信息增益
以某特征劃分?jǐn)?shù)據(jù)集前后的熵的差值。熵可以表示樣本集合的不確定性,熵越大,樣本的不確定性就越大。因此可以使用劃分前后集合熵的差值來衡量使用當(dāng)前特征對于樣本集合D劃分效果的好壞。
信息增益=entroy(前)-entroy(后)
注意:信息增益表示得知特征X的信息而使得類Y的信息熵減少的程度
2、信息增益率
增益率是用前面的信息增益Gain(D,a)和屬性a對應(yīng)的"固有值"(intrinsicvalue)[Quinlan,1993J的比值來共同定義的。
二、信息增益與信息增益率python代碼實(shí)現(xiàn)
1、信息增益定義計(jì)算信息增益的函數(shù):計(jì)算g(D|A)
defg(data,str1,str2):
e1=data.groupby(str1).apply(lambdax:infor(x[str2]))
p1=pd.value_counts(data[str1])/len(data[str1])
#計(jì)算Infor(D|A)
e2=sum(e1*p1)
returninfor(data[str2])-e2
print("學(xué)歷信息增益:{}".format(g(data,"學(xué)歷","類別")))
#輸出結(jié)果為:學(xué)歷信息增益:0.08300749985576883
2、信息增益率定義計(jì)算信息增益率的函數(shù):計(jì)算gr(D,A)
defgr(data,str1,str2):
returng(data,str1,str2)/infor(data[str1])
print("學(xué)歷信息增益率:",gr(data,"學(xué)歷","類別"))
#輸出結(jié)果為:學(xué)歷信息增益率:0.05237190142858302
以上就是python中如何實(shí)現(xiàn)信息增益和信息增益率,希望能對大家有所幫助。更多Python學(xué)習(xí)教程請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。