python - 试图找到信息增益但不知道如何处理条件熵
问题描述
计算熵的代码:
def entropy(column):
""" Calculates the entropy"""
values, counts = np.unique(column, return_counts=True)
entropy_val = 0
for i in range(len(counts)):
entropy_val += (
(-counts[i] / sum(counts)) * math.log2(counts[i] / (sum(counts)))
)
return entropy_val
其中“列”是数据框中的一个特征,例如 df[0]。我对从这里去哪里有点困惑......谁能指出我正确的方向,我的最终目标是找到最佳的信息增益。
entropy_vals = {}
entropy_vals = entropy(X[0]), entropy(X[1]), entropy(X[2]), entropy(X[3]), entropy(y)
print(entropy_vals)
df = pd.read_csv('data_banknote_authentication.txt', header=None)
print(df)
y = df.iloc[:, -1]
X = df.iloc[:, :4]
def count_labels(rows):
"""Counts number of each unique value in selected column."""
counts = {}
for row in rows:
label = row
if label not in counts:
counts[label] = 1
else:
counts[label] += 1
return counts
def entropy(column):
""" Calculates the entropy"""
values, counts = np.unique(column, return_counts=True)
entropy_val = 0
for i in range(len(counts)):
entropy_val += (
(-counts[i] / sum(counts)) * math.log2(counts[i] / (sum(counts)))
)
return entropy_val
entropy_vals = {}
entropy_vals = entropy(X[0]), entropy(X[1]), entropy(X[2]), entropy(X[3]), entropy(y)
print(entropy_vals)
def check_unique(data):
label_col = data[data.columns[-1]]
print(label_col)
unique_features = np.unique(label_col)
if len(unique_features) == 1:
return True
else:
return False
def categorize_data(data):
label_col = data[data.columns[-1]]
values, counts = np.unique(label_col, return_counts=True)
print(values, counts)
index = counts.argmax()
category = values[index]
return category
def split(data):
x_less = data[data <= np.mean(data)]
x_greater = data[data > np.mean(data)]
return x_less, x_greater
解决方案
推荐阅读
- laravel - 加入子表中最新行的第一行
- c - 如果 scanf 无法获得正确的文字字符,它会返回什么?
- java - 我需要用 JDK 13.0.2 编译什么版本的 JRE?
- python - 当切换 /usr/bin/python 指向 python 3 时,除了 YUM 之外,还有什么会在 CentOS 7 中中断?
- node.js - 无法从 docker 实例连接到 neo4j
- python - pyparsing 通用 python 函数 args 和 kwargs
- swift - 快速创建 URLSession 冻结应用程序
- javascript - 如何在 Outloo 发送插件中区分会议取消和会议创建
- swift - 更新结构数组中的结构数组
- javascript - AG-Grid React,无法在数据更改时更新自定义单元格渲染器。函数组件的行为与类组件不同