决策树学习-计算数据集的信息熵

复制代码
 #计算信息熵
def calEntro(dataset):
    dataset = np.array(dataset)
    data_len = len(dataset)
    #labelCount记录各类样本数据的数量
    labelCount = {}

    for row in dataset:
        cur_label = row[-1]
        if cur_label not in labelCount.keys():
            labelCount[cur_label] = 0
        labelCount[cur_label] += 1

    result = 0
    for key in labelCount.keys():
        prob = labelCount[key]/data_len
        result -= prob*math.log2(prob)
    return result

这段代码是用来计算数据集的信息熵的函数。信息熵是用来衡量数据集的不确定性,即数据集中包含的信息量。以下是对代码的解释:

  1. def calEntro(dataset)::定义了一个名为 calEntro 的函数,该函数接受一个数据集 dataset 作为输入参数。

  2. dataset = np.array(dataset):将输入的数据集转换为 NumPy 数组,以方便处理。

  3. data_len = len(dataset):获取数据集的长度,即数据集中样本的数量。

  4. labelCount = {}:初始化一个空字典 labelCount,用于记录数据集中各类别样本的数量。

  5. 遍历数据集中的每一行:

    • cur_label = row[-1]:获取当前样本的标签值(假设标签值在每行的最后一个位置)。
    • if cur_label not in labelCount.keys(): labelCount[cur_label] = 0:如果当前标签值不在 labelCount 字典的键中,则将其初始化为 0。
    • labelCount[cur_label] += 1:统计当前标签值在数据集中出现的次数。
  6. 计算信息熵:

    • result = 0:初始化信息熵的结果为 0。
    • 遍历 labelCount 字典中的每个键(类别):
      • prob = labelCount[key]/data_len:计算当前类别在数据集中的概率。
      • result -= prob*math.log2(prob):根据信息熵的公式,累加计算信息熵的值,其中 math.log2(prob) 表示以2为底的对数运算。
    • 最终返回计算得到的信息熵值 result

总体来说,这段代码的功能是通过遍历数据集中的标签值,计算数据集的信息熵,并返回信息熵的值。信息熵值越高,表示数据集的不确定性越大。

相关推荐
2601_9494999410 分钟前
芯瑞科技 DT‑1414完全兼容HFBR‑1414TZ光模块国产化优选方案深度解析(工程师视角)
运维·网络·人工智能·科技·光模块
BSD_HY13 分钟前
薄膜开关矩阵扫描电路设计中的防鬼键措施
人工智能·算法·矩阵·人机交互·薄膜开关·源头工厂·深圳工厂
2601_9556624615 分钟前
实测6款AI配音工具:从环境部署到本地运行,零成本搭建配音系统
人工智能
单友人16 分钟前
HMHA-RYST 算法技能包 + 聊天记录导出器
人工智能·神经网络·机器学习·语言模型·自动化
sel_920 分钟前
【多轮对话论文导读(七)】多轮对话论文阅读笔记:从数据生成、用户模拟到上下文重构与长期记忆
论文阅读·人工智能·笔记·深度学习·算法·语言模型·自然语言处理
Zach_菠萝侠22 分钟前
【deepseek harness研究】进化方向10:对外编程接口面 思考、设计与实现
人工智能·深度学习·deepseek
甲维斯26 分钟前
GLM5.3Flash 我“忍”你很久,今天“曝光”你!
人工智能
宣宣猪的小花园.31 分钟前
【控制理论】系统为什么会“有记忆”:从输入输出理解动态过程
人工智能·嵌入式硬件·机器学习
cui_ruicheng35 分钟前
LangChain 应用开发(十二):Agent 中间件与内置中间件
人工智能·python·中间件·langchain
智圣新创0135 分钟前
存量数字化校园效能升级:智圣新创数据治理及一表通平台实现填报减负与数据价值双升
大数据·人工智能·物联网