我是Python新手,目前正尝试使用以下代码计算熵:
def entropy (df, features, response):
for i in df[features].unique():
for n in df[response].unique():
#entropy formula: Ht(A)=x*(-x1*log2*x1-x2*log2*x2)
x=float(len(df[df[features]==i]))/float(len(df))
x1=float(len(df[(df[features]==i)&(df[response]==n)]))/float(len(df[df[features]==i]))
x2=1-x1
HtA=x*(-x1*np.log2(x1)-x2*np.log2(x2))
return HtA
entropy(dfa, 'LANG', 'HIRE')
但它返回" nan"而不是数字,不知道我的代码有什么问题。这是我正在使用的数据框架:
非常感谢任何帮助!