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

复制代码
 #计算信息熵
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

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

相关推荐
fuquxiaoguang1 小时前
中间件的“价值重估”:传统同质化竞争终结,AI智能编排时代开启
人工智能·中间件
触底反弹2 小时前
🔥 前端也能玩转 AI 流式输出!从二进制流到打字机效果,一篇讲透
javascript·人工智能·node.js
腾渊信息科技公司2 小时前
工业数据运维痛点根治方案:基于AI Agent的产线自动化台账系统落地
运维·人工智能·自动化·个人开发·ai编程
西安老张(AIGC&ComfyUI)2 小时前
第030章:ComfyUI视频制作LTX-2.3模型文生视频工作流详解(三)
人工智能·aigc·comfyui
苦猿的大模型日记2 小时前
Day25 | 模型量化横评 GPTQ vs AWQ vs GGUF vs INT8——同一个 Qwen3-8B 压四遍,谁还活着
人工智能
benchmark_cc3 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
深海鱼肝油ya3 小时前
小说自动生成系统(二)
人工智能·大模型·agent·智能体·自动化编程·小说生成系统
通问AI3 小时前
Apple Intelligence 国行备案深度技术解析:阿里千问如何被集成到苹果端侧AI架构
人工智能·架构
视***间3 小时前
算力赋能零售与创意新生态:视程空间Pandora,解锁线下场景智能化无限可能
人工智能·边缘计算·智慧零售·ai算力·视程空间·创意开发
冬奇Lab3 小时前
MCP 系列(08):企业治理——Registry、路由与可观测性
人工智能·llm·mcp