栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用python来实现信息熵、条件熵、信息增益率

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用python来实现信息熵、条件熵、信息增益率

import numpy as np data pd.Dataframe({ 天气 :[ 晴 , 晴 , 阴 , 雨 , 雨 , 雨 , 阴 , 晴 , 晴 , 雨 , 晴 , 阴 , 阴 , 雨 ], 温度 :[ 高 , 高 , 高 , 低 , 低 , 低 , 低 , 低 , 低 , 低 , 低 , 低 , 高 , 低 ], 湿度 :[ 高 , 低 , 高 , 高 , 高 , 低 , 低 , 高 , 低 , 高 , 低 , 高 , 低 , 高 ], 起风 :[1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0], 打球 :[ NO , NO , YES , YES , YES , NO , YES , NO , YES , YES , YES , YES , YES , NO ]})

我们先看计算信息熵的公式

第二 计算信息熵

def entr(data):
 prob1 pd.value_counts(str1)/len(data[str1])
 entropy sum( (-1)*prob1*np.log2(prob1) )
 return entropy

第三 计算条件熵和信息增益率

def conditional_entropy(data, str1, str2):
 entr1 data.groupby(str1).apply(lambda x:entr(x[str2]))
 prob2 pd.value_counts(data[str1])/len(data[str1])
 con_ent sum(entr1*prob2)
 #信息增益率率
 Information_gain_rate entr(data[str2])-con_ent
 return Information_gain_rate
conditional_entropy(data, 天气 , 打球 )

下面是完整代码图片 

 信息熵的详细解释 信息、信息熵、条件熵、信息增益、信息增益率、GINI指数、交叉熵、相对熵_江湖人称星爷-CSDN博客_gini 信息熵

参考代码 python详细步骤计算信息增益_spartanfuk的博客-CSDN博客_python计算信息增益 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号