Python 計算資訊增益的方法

2021-09-13 03:09:42 字數 1064 閱讀 5605

import numpy as np

a =np.array([1,2,3,3,4,4,5,5,6,6,7,7])

# 計算方法一

def calculate_entropy(x):

x_value_list = set([x[i] for i in range(x.shape[0])])

entropy = 0.0

for x_value in x_value_list:

p = float(x[x == x_value].shape[0])/x.shape[0]

logp = np.log2(p)

entropy -= p*logp

return entropy

print(calculate_entropy(a))

#計算方法二

def calculate_entropy_1(x):

x_value_list =set(x)

entropy = 0.0

for x_value in x_value_list:

p = np.sum(x == x_value)/ len(x) #這裡**編輯x == x_value有高亮提示,誰能解決一下,函式變數沒有宣告的原因

logp = np.log2(p)

entropy -= p * logp

return entropy

print(calculate_entropy_1(a))

b = [1,2,3,3,4,4,5,5,6,6,7,7]

def calc_ent(x):

x_value_list = set(x)

entro = 0.0

for x_value in x_value_list:

p = x.count(x_value)/len(x)

logp = np.log2(p)

entro -= p * logp

return entro

print(calc_ent(b))

方法二中注釋的問題誰能解決下?萬分感謝

機器學習中資訊增益的計算方法

背景介紹 最近在處理資料的時候,需要用到資訊增益來進行特徵選擇,在網上查閱了一些資料,這裡對資訊增益的相關知識總結一下。介紹資訊增益之前,首先需要介紹一下熵的概念,這是乙個物理學概念,表示 乙個系統的混亂程度 系統的不確定性越高,熵就越大。假設集合中的變數x 它對應在集合的概率分別是p 那麼這個集合...

特徵選擇方法之資訊增益

前文提到過,除了開方檢驗 chi 以外,資訊增益 ig,information gain 也是很有效的特徵選擇方法。但凡是特徵選擇,總是在將特徵的重要程度量化之後再進行選擇,而如何量化特徵的重要性,就成了各種方法間最大的不同。開方檢驗中使用特徵與類別間的關聯性來進行這個量化,關聯性越強,特徵得分越高...

特徵選擇方法之資訊增益

本章主要討論下特徵生成中的 資訊增益方法 在資訊增益中,重要性的衡量標準就是看特徵能夠為分類系統帶來多少資訊,帶來的資訊越多,該特徵越重要。因此先回憶一下資訊理論中有關資訊量 就是 熵 的定義。說有這麼乙個變數x,它可能的取值有n多種,分別是x1,x2,xn,每一種取到的概率分別是p1,p2,pn,...