python - 计算条件熵
问题描述
我得到:
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 个给定属性之一的条件熵。
解决方案
推荐阅读
- c# - OpenIddict 授权请求未处理
- javascript - Javascript列表循环/递归创建对象
- go - 在 Go 中使用单个案例的 select 语句的目的?
- php - 贝宝捐赠代码点火器
- java - Java REGEX - 从列表中添加可能性
- windows - 是否可以将 PowerShell 窗口注入 Windows 任务栏?
- sql-server - 使用 OPENJSON 触发向插入的记录添加值
- azure-active-directory - 为资源“组”的属性“可见性”指定了不受支持或无效的查询过滤器子句
- hyperledger - 如何安装超级账本资源管理器并将其集成到 iroha?
- python - 如何在 PySpark 中编码 DateTime 值?