【算法】Shannon Entropy决策中的香农熵介绍、计算以及python代码实现
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代码实现相关推荐
- 时间序列中Hurst指数的计算(python代码)
在做时间序列分析时,需要计算Hurst指数,由于Hurst指数计算比较复杂,刚开始懒得自己写,就在github上进行搜索,多是这个代码: from numpy import std, subtract ...
- 农历中天干地支的计算【C代码】
[本程序在DEV C++ 4.9.9.2 下编译通过] 有关农历的东西有以下几篇文章: 计算某天是星期几[C代码] 农历算法简介以及公式 农历中天干地支的计算[C代码] 农历一百年算法(1921~20 ...
- c语言输出天干地支,农历中天干地支的计算【C代码】
[本程序在DEV C++ 4.9.9.2 下编译通过] 有关农历的东西有以下几篇文章: 计算某天是星期几[C代码] 农历算法简介以及公式 农历中天干地支的计算[C代码] 农历一百年算法(1921~20 ...
- 在Sklearn中使用SVC运行RFE的python代码
部分代码 from sklearn.feature_selection import RFE, RFECV from sklearn.svm import SVC, SVR import pandas ...
- 在Sklearn中使用LinearRegression运行RFE的python代码
部分代码 import numpy as np import pandas as pd from sklearn.feature_selection import RFE from sklearn.l ...
- k近邻回归算法python_K近邻算法用作回归的使用介绍(使用Python代码)
介绍 在我遇到的所有机器学习算法中,KNN是最容易上手的.尽管它很简单,但事实上它其实在某些任务中非常有效(正如你将在本文中看到的那样). 甚至它可以做的更好?它可以用于分类和回归问题!然而,它其实更 ...
- knn算法python理解与预测_K近邻算法用作回归的使用介绍(使用Python代码)
介绍 在我遇到的所有机器学习算法中,KNN是最容易上手的.尽管它很简单,但事实上它其实在某些任务中非常有效(正如你将在本文中看到的那样). 甚至它可以做的更好?它可以用于分类和回归问题!然而,它其实更 ...
- k近邻回归算法python_K-近邻回归算法的实用介绍(附Python代码)
介绍 在我所遇到的所有机器学习算法中,KNN很容易被选择.尽管它很简单,但它在某些任务上被证明是非常有效的(如本文中所见). 甚至更好?它可以用于分类和回归问题!然而,它更广泛地用于分类问题.我很少看 ...
- 聚类算法中各种距离的计算与python的具体实现代码
一.聚类算法和相似度 在机器学习中,有两类学习算法,一类是无监督学习,另一类是监督学习.聚类算法是无监督学习算法,一般构建用户兴趣属性画像等可应用聚类算法:而一般的分类算法是有监督学习,基于有标注的历 ...
最新文章
- 半透明父视图,小程序不透明
- vue xss 存在_默认情况下,Vue是否为XSS提供安全性或防御XSS?
- win10内建子系统Linux
- pyechart 应用: graph
- python日记----2017.8.1
- MVC实现实现文件流打包成压缩包
- (转)非极大抑制(Non-Maximum Suppression)
- 什么软件能打开prt文件_prt文件除了UG和PROE还可以用什么软件打开?
- python JEP安装
- 学生成绩管理系统——JAVA
- 【Python游戏】Python基于pygame和random模块开发的一个拼图小游戏 | 附带源码
- opencv安装教程
- c语言平方根求和用sqrt函数,sqrt函数 Excel怎么使用平方根函数SQRT
- 分库分表:应用场景、方式方法、面临问题
- win10无法复制文件到system32,提示需要权限操作
- 常见的十大恶意软件类型
- 熟练掌握python需要多久_全熟是什么意思
- 云端是一个软件平台,拥有丰富的资源。在云端使用软件,无需安装,一点,下载,直接使用。
- 协同工作平台功能说明书
- 如何实现windows命令提示符的tab补全
热门文章
- 【腾讯云原生降本增效大讲堂】云原生混部技术标准解读
- P,AP, MAP,MRR。几种分类器评价指标
- 000 高数预备知识
- php项目宝塔搭建实战前后端Niushop开源商城系统
- ucsd大学音乐计算机,音乐留学│综合名校UCSD音乐制作专业详解!
- Warning: date() :It is not safe to rely on the system's timezone settings
- c语言建立小根堆的算法,小根堆(Heap)的详细实现
- ebs 供应商地点信息_EBS R12使用接口表往已存在的供应商地址下创建新的地点
- 【评测】无血清细胞冻存液
- 【Adapter模式】C++设计模式——适配器