一.定义

香农熵定义为信息的期望值。在信息论与概率统计中,熵是表示随机变量不确定性的度量。

假定当前样本集合D中一共有n类样本,第i类样本为Xi ,那么Xi的信息定义为:

举例:

若小明和小华下棋,两人势均力敌,则信息熵H = -((1/2) log2 (1/2) + (1/2) log2 (1/2)) = 1bit。

二.计算

香农熵的计算公式为:

香农熵的值越小,则表明D的不纯度越低。

三.代码实现

计算香农熵的python函数实现:

# 计算香农熵
def calEnt(dataSet):n = dataSet.shape[0]  # 数据集总行数iset = dataSet.iloc[:, -1].value_counts()  # 标签的所有类别p = iset / n  # 每一类标签所占比ent = (-p * (np.log2(p))).sum()return ent

假设有如下数据集,试着实现计算香农熵的python代码。

代码:

import pandas as pd
import numpy as np# 计算香农熵
def calEnt(dataSet):n = dataSet.shape[0]  # 数据集总行数iset = dataSet.iloc[:, -1].value_counts()  # 标签的所有类别# print(iset)'''no     3yes    2Name: fish, dtype: int64'''p = iset / n    # 每一类标签所占比'''no     0.6yes    0.5Name: fish, dtype: int64'''ent = (-p * (np.log2(p))).sum()return ent# 创建数据集
def createDataSet():row_data = {'no surfacing': [1, 1, 1, 0, 0],'flippers': [1, 1, 0, 1, 1],'fish': ['yes', 'yes', 'no', 'no', 'no']}dataSet = pd.DataFrame(row_data)return dataSetif __name__ == "__main__":dataSet = createDataSet()print(calEnt(dataSet))      # 0.9709505944546686

机器学习 -- 决策树(Ⅱ香农熵)相关推荐

  1. 机器学习——决策树学习

    机器学习--决策树学习 一.什么是决策树 二.决策树的学习过程 特征选择: 决策树生成: 剪枝: 三.决策树的一个具体的实例 导入数据 python strip() 函数和 split() 函数的详解 ...

  2. 3.1 机器学习 --- 决策树

    3.1 机器学习 - 决策树 一 金融评分卡 模型做好后尽量快的上线,以符合要求的模型,尽快上线. 超参数赋予权重,使得模型的参数不一致,而达到均衡样本数据 二 决策树原理 1. 找女朋友 性别:男 ...

  3. 关于《机器学习决策树导出图片、PDF支持中文》解决办法

    很久没有更新博客了,一直以为自己默默无闻,埋头苦干.实际上是一种懒惰! 2020年的春天,是一段难忘的记忆!在这段特殊的时光里,让我静心思考,潜心研究.每每遇到技术困惑,总能在CSDN找到解决办法,由 ...

  4. 机器学习 | 决策树原理剪枝连续值缺失值处理

    机器学习 | 决策树 最近学习了西瓜书决策树一章,简单整理了笔记,后续会继续补充给 文章目录 机器学习 | 决策树 一.基本信息论 1. 信息量 2. 信息熵 二.决策树常用算法 1.ID3 2.C4 ...

  5. 机器学习——决策树(decision tree)

    相关文章链接: 机器学习--人工神经网络(NN) 机器学习--卷积神经网络(CNN) 机器学习--循环神经网络(RNN) 机器学习--长短期记忆(LSTM) 机器学习--决策树(decision tr ...

  6. 机器学习 --- 决策树(educode实训作业)

    引言:本文主要对educoder机器学习 --- 决策树的实训作业进行讲解,创造不易!请您点点关注,点点收藏叭!!! 目录 第1关:什么是决策树 任务描述 相关知识 引例 决策树的相关概念 编程要求 ...

  7. 机器学习 决策树篇——解决离散变量的分类问题

    机器学习 决策树篇--解决离散变量的分类问题 摘要 熵增益和熵增益率计算 熵增益和熵增益率运行结果 离散变量的决策树模型 决策树模型运行结果 摘要 本文通过python实现了熵增益和熵增益率的计算.实 ...

  8. 机器学习——决策树模型:Python实现

    机器学习--决策树模型:Python实现 1 决策树模型的代码实现 1.1 分类决策树模型(DecisionTreeClassifier) 1.2 回归决策树模型(DecisionTreeRegres ...

  9. 机器学习 决策树篇——解决连续变量的分类问题

    机器学习 决策树篇--解决连续变量的分类问题 摘要 信息熵.条件熵.熵增益.熵增益率的计算 GiNi系数.GiNi系数增益的计算 python代码 连续变量决策树分类案例 摘要 本文通过python实 ...

  10. 机器学习 | 决策树之回归树

    机器学习 | 决策树之回归树 上文提到决策树不仅可用于分类,还可进行回归,本文将继续记录回归决策树. 文章目录 机器学习 | 决策树之回归树 前言 一.回归树的构建方法 二.递归二分法 三.回归树的剪 ...

最新文章

  1. 配置通过Apache(httpd)访问Subversion(SVN)1.7资源库
  2. 了解媒体播放控件 winform
  3. ibm v7000配置文档_IBM_V7000底层结构及服务器数据恢复案例详解
  4. 苏州新导监狱戒毒行业工具资产智能管理
  5. python外国网站爬虫_10分钟教你用python爬取网站信息:这可能是全网最好用的爬虫代码...
  6. KK集团招股书失效,首次冲刺港交所上市失利,尚未实现盈利
  7. 计量经济学及Stata应用 陈强 第七章异方差习题7.2
  8. JUC并发编程学习笔记
  9. 「Python|场景案例」如何获取音视频中声音片段的起止时间?
  10. 王者荣耀在android目录下的名字,王者荣耀名字空白代码怎么弄_名字空白代码设置方法...
  11. 深度操作系统20.7正式发布
  12. 防止恶意调用API接口
  13. 开发操作系统(2)键盘驱动
  14. Coursera登不上的全套方法
  15. 罗老师的Android底层开发问答链接
  16. 免费PPT模板 | 《超能陆战队》暖心大白通用演示PPT模板
  17. [dataframe]python数据集中数据统计分析
  18. motion_model总结
  19. Codeforces847K Travel Cards
  20. 黄河流域公安院校网络空间安全技能挑战赛

热门文章

  1. alway in my heart
  2. Y - C~K的班级(III)_Java
  3. 微信小程序测试(简单项目测试)
  4. 关于 minor allele frequency(次等位基因频率)的理解
  5. CRM项目 - 心得
  6. 独特的建模软件-----Fusion360
  7. 二阶系统中阻尼系数和自然振荡频率的作用
  8. 谷粒商城笔记(13)——商城业务-检索服务
  9. 【Linux常用指令合集】
  10. 浅谈配电室在线监控系统设计与工作原理