python中如何實現資訊增益和資訊增益率

wjaning發表於2021-09-11

python中如何實現資訊增益和資訊增益率

一、資訊增益與資訊增益率

1、資訊增益

以某特徵劃分資料集前後的熵的差值。熵可以表示樣本集合的不確定性,熵越大,樣本的不確定性就越大。因此可以使用劃分前後集合熵的差值來衡量使用當前特徵對於樣本集合D劃分效果的好壞。

資訊增益 = entroy(前) - entroy(後)

注意:資訊增益表示得知特徵X的資訊而使得類Y的資訊熵減少的程度

2、資訊增益率

增益率是用前面的資訊增益Gain(D, a)和屬性a對應的"固有值"(intrinsic value) [Quinlan , 1993J的比值來共同定義的。

二、資訊增益與資訊增益率python程式碼實現

1、資訊增益定義計算資訊增益的函式:計算g(D|A)

	def g(data, str1, str2):
	    e1 = data.groupby(str1).apply(lambda x: infor(x[str2]))
	    p1 = pd.value_counts(data[str1]) / len(data[str1])
	    # 計算Infor(D|A)
	    e2 = sum(e1 * p1)
    return infor(data[str2]) - e2
	print("學歷資訊增益:{}".format(g(data, "學歷", "類別")))
	# 輸出結果為:學歷資訊增益:0.08300749985576883

2、資訊增益率定義計算資訊增益率的函式:計算gr(D,A)

	def gr(data, str1, str2):
	    return g(data, str1, str2) / infor(data[str1])


	print("學歷資訊增益率:", gr(data, "學歷", "類別"))
	# 輸出結果為:學歷資訊增益率: 0.05237190142858302

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2983/viewspace-2830663/,如需轉載,請註明出處,否則將追究法律責任。

相關文章