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