1. 实现

香农熵又称信息熵,反映了一条信息的信息量大小和它的不确定性之间的关系,是信息量的度量,单位为 bit。

对于某件事情:

  • 不确定性越大,熵越大,确定该事所需的信息量也越大;
  • 不确定性越小,熵越小,确定该事所需的信息量也越小。

假设有一事件XX,XX事件有ii种可能性,每一种可能性发生的概率记为P(Xi)P(Xi),则香农熵的计算公式为:

2. python代码实现:

计算给定数据集的香农熵

def calsShannonEnt(dataSet):numEntries = len(dataSet)labelCounts = {}for dataVec in dataSet:label = dataVec[-1]if label not in labelCounts.keys():labelCounts[label] = 0labelCounts[label] += 1shannonEnt = 0.0for key in labelCounts.keys():prob = float(labelCounts[key]) / numEntriesshannonEnt -= prob * math.log(prob, 2)return shannonEntif __name__ == "__main__":print("Code Run As A Program")

【算法】Shannon Entropy决策中的香农熵介绍、计算以及python代码实现相关推荐

  1. 时间序列中Hurst指数的计算(python代码)

    在做时间序列分析时,需要计算Hurst指数,由于Hurst指数计算比较复杂,刚开始懒得自己写,就在github上进行搜索,多是这个代码: from numpy import std, subtract ...

  2. 农历中天干地支的计算【C代码】

    [本程序在DEV C++ 4.9.9.2 下编译通过] 有关农历的东西有以下几篇文章: 计算某天是星期几[C代码] 农历算法简介以及公式 农历中天干地支的计算[C代码] 农历一百年算法(1921~20 ...

  3. c语言输出天干地支,农历中天干地支的计算【C代码】

    [本程序在DEV C++ 4.9.9.2 下编译通过] 有关农历的东西有以下几篇文章: 计算某天是星期几[C代码] 农历算法简介以及公式 农历中天干地支的计算[C代码] 农历一百年算法(1921~20 ...

  4. 在Sklearn中使用SVC运行RFE的python代码

    部分代码 from sklearn.feature_selection import RFE, RFECV from sklearn.svm import SVC, SVR import pandas ...

  5. 在Sklearn中使用LinearRegression运行RFE的python代码

    部分代码 import numpy as np import pandas as pd from sklearn.feature_selection import RFE from sklearn.l ...

  6. k近邻回归算法python_K近邻算法用作回归的使用介绍(使用Python代码)

    介绍 在我遇到的所有机器学习算法中,KNN是最容易上手的.尽管它很简单,但事实上它其实在某些任务中非常有效(正如你将在本文中看到的那样). 甚至它可以做的更好?它可以用于分类和回归问题!然而,它其实更 ...

  7. knn算法python理解与预测_K近邻算法用作回归的使用介绍(使用Python代码)

    介绍 在我遇到的所有机器学习算法中,KNN是最容易上手的.尽管它很简单,但事实上它其实在某些任务中非常有效(正如你将在本文中看到的那样). 甚至它可以做的更好?它可以用于分类和回归问题!然而,它其实更 ...

  8. k近邻回归算法python_K-近邻回归算法的实用介绍(附Python代码)

    介绍 在我所遇到的所有机器学习算法中,KNN很容易被选择.尽管它很简单,但它在某些任务上被证明是非常有效的(如本文中所见). 甚至更好?它可以用于分类和回归问题!然而,它更广泛地用于分类问题.我很少看 ...

  9. 聚类算法中各种距离的计算与python的具体实现代码

    一.聚类算法和相似度 在机器学习中,有两类学习算法,一类是无监督学习,另一类是监督学习.聚类算法是无监督学习算法,一般构建用户兴趣属性画像等可应用聚类算法:而一般的分类算法是有监督学习,基于有标注的历 ...

最新文章

  1. 半透明父视图,小程序不透明
  2. vue xss 存在_默认情况下,Vue是否为XSS提供安全性或防御XSS?
  3. win10内建子系统Linux
  4. pyechart 应用: graph
  5. python日记----2017.8.1
  6. MVC实现实现文件流打包成压缩包
  7. (转)非极大抑制(Non-Maximum Suppression)
  8. 什么软件能打开prt文件_prt文件除了UG和PROE还可以用什么软件打开?
  9. python JEP安装
  10. 学生成绩管理系统——JAVA
  11. 【Python游戏】Python基于pygame和random模块开发的一个拼图小游戏 | 附带源码
  12. opencv安装教程
  13. c语言平方根求和用sqrt函数,sqrt函数 Excel怎么使用平方根函数SQRT
  14. 分库分表:应用场景、方式方法、面临问题
  15. win10无法复制文件到system32,提示需要权限操作
  16. 常见的十大恶意软件类型
  17. 熟练掌握python需要多久_全熟是什么意思
  18. 云端是一个软件平台,拥有丰富的资源。在云端使用软件,无需安装,一点,下载,直接使用。
  19. 协同工作平台功能说明书
  20. 如何实现windows命令提示符的tab补全

热门文章

  1. 【腾讯云原生降本增效大讲堂】云原生混部技术标准解读
  2. P,AP, MAP,MRR。几种分类器评价指标
  3. 000 高数预备知识
  4. php项目宝塔搭建实战前后端Niushop开源商城系统
  5. ucsd大学音乐计算机,音乐留学│综合名校UCSD音乐制作专业详解!
  6. Warning: date() :It is not safe to rely on the system's timezone settings
  7. c语言建立小根堆的算法,小根堆(Heap)的详细实现
  8. ebs 供应商地点信息_EBS R12使用接口表往已存在的供应商地址下创建新的地点
  9. 【评测】无血清细胞冻存液
  10. 【Adapter模式】C++设计模式——适配器