我被给予:
import numpy as np
import math
import pandas as pd
attrNms = ["attr 1", "attr 2", "attr 3", "attr 4", "attr 5"]
data = pd.DataFrame(
[
[1, 0, 1, 1, 1],
[1, 1, 0, 0, 1],
[0, 1, 1, 1, 1],
[1, 0, 1, 0, 1],
[1, 0, 0, 1, 1],
[0, 0, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 0, 0, 1, 1],
[0, 1, 0, 0, 1],
[0, 0, 0, 1, 1],
],
columns=attrNms,
)
及
data["cl"] = [1, 1, 1, 0, 0, 1, 1, 1, 0, 0].
我有一个函数
def getConditionalEntropy(cl, attr):
AssocEnt = np.c_(cl, attr)
CondEnt = AssocEnt - getEntropy(cl)
return CondEnt
(getEntropy函数工作正常)但我需要一个函数,根据条件熵公式计算attr和cl的条件熵:𝐻(𝐶𝐿|𝑋)=−∑𝑥∈𝑋∑𝑦∈𝐶𝐿𝑝(𝑥,𝑦)𝑙𝑜𝑔2(𝑝(𝑥,𝑦)/𝑝(𝑥)). 还有,如果我们有𝑙𝑜𝑔2(0)则等于0,如果𝑝(𝑥)=0,那么𝑝(𝑥,𝑦)/𝑝(𝑥) 也等于0。很明显,x=attr和y=cl。函数应该为5个给定属性之一返回条件熵
目前没有回答
相关问题 更多 >
编程相关推荐