一、信息增益与信息增益率

1、信息增益

以某特征划分数据集前后的熵的差值。熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。

信息增益 = entroy(前) - entroy(后)

注意:信息增益表示得知特征X的信息而使得类Y的信息熵减少的程度

2、信息增益率

增益率是用前面的信息增益Gain(D, a)和属性a对应的"固有值"(intrinsic value) [Quinlan , 1993J的比值来共同定义的。

二、信息增益与信息增益率python代码实现

1、信息增益定义计算信息增益的函数:计算g(D|A)def g(data, str1, str2):

e1 = data.groupby(str1).apply(lambda x: infor(x[str2]))

p1 = pd.value_counts(data[str1]) / len(data[str1])

# 计算Infor(D|A)

e2 = sum(e1 * p1)

return infor(data[str2]) - e2

print("学历信息增益:{}".format(g(data, "学历", "类别")))

# 输出结果为:学历信息增益:0.08300749985576883

2、信息增益率定义计算信息增益率的函数:计算gr(D,A)def gr(data, str1, str2):

return g(data, str1, str2) / infor(data[str1])

print("学历信息增益率:", gr(data, "学历", "类别"))

# 输出结果为:学历信息增益率: 0.05237190142858302

信息增益matlab实现,python中如何实现信息增益和信息增益率相关推荐

  1. matlab和python中的svd分解的区别

    matlab中的svd分解中 得到的第三项是V, 代码如下: A=[1 2 3 4 5 6 7 8 9; 5 6 7 8 9 0 8 6 7; 9 0 8 7 1 4 3 2 1; 6 4 2 1 3 ...

  2. [Python+MATLAB] 在Python中使用MATLAB (持续更新中)

    文章目录 在Python中安装MATLAB引擎 官方介绍 个人介绍 结果演示 常见用法 一些tips: 使用Python能使用MATLAB的函数吗? 答案是可以的! The MATLAB Engine ...

  3. trapz 函数在matlab 和 python中的区别

    trapz 函数! 1.matlab 中,贝塞尔函数的表达形式 他山之石--官方文档 // matlab中的函数 Q = trapz(Y) /* 如果 Y 为向量,则 trapz(Y) 是 Y 的近似 ...

  4. matlab循环数组里的数据库,用于在matlab的python中循环数组

    Matlab代码的直译应该是import numpy as np x = np.zeros((parts, 2)) for i in range(parts): x[i,0] = i*L + 1 x[ ...

  5. matlab ghm,matlab – 用Python中的matplotlib绘制许多数据点

    我最近从MATLAB切换到 Python进行数据分析,我使用matplotlib来显示数据.如果我想要显示的数据点数量很少,这可以正常工作.但是,如果我想想象,例如 import matplotlib ...

  6. 孤立森林算法matlab实现,隔离林在MATLAB和python中的简单应用,isolationforest,上

    1 问题描述 数据中的异常值的检测 异常点,也称为离群点.离群点检测算法主要看到了isolation forest算法和local outlier factor(LOF)算法. LOF算法的具体原理在 ...

  7. matlab三维螺旋,如何在MATLAB或Python中生成三维螺旋线?

    我写了一个生成螺旋线的x,y,z点的代码,得到了这个结果: 代码:clear all; delete all, clc; % Spiral constants THETA_0 = 5; % const ...

  8. python读取matlab矩阵_matlab、python中矩阵的互相导入导出方式

    还有一种最流行的h5py.. 过几天更新 ------------在python中导出矩阵至matlab------------ 如果矩阵是mxn维的. 那么可以用 : np.savetxt('dev ...

  9. MATLAB和Python线性系统解中的病态和正则化

    线性系统解决方案中的病态 病态线性系统是一种线性系统,它对右侧矩阵上的系数矩阵或矢量的较小摄动做出响应,而系统解却发生了较大变化. 看到这一点,将向要考虑的两个示例提供两种小扰动. 在第一个示例中,将 ...

最新文章

  1. TurboMail邮件服务器围绕用户需求 建自主创新型企业
  2. mysql8区分大小写_mysql8 参考手册--区分大小写
  3. python主要就业方向-四种Python高薪就业方向
  4. java resources 路径_Java工程读取resources中资源文件路径问题
  5. php socket传递cookie,PHP Websocket在测试中验证用户(传递会话cookie)
  6. gedit搭建c开发环境
  7. Incorrect string value: '/xE7/xA8/x8B/xE5/xBA/x8F...' for column 'course' at row 1
  8. 当年资本家倒掉牛奶,到底是怎么回事?
  9. PowerShell定时记录操作系统行为
  10. C# 找出实现某个接口的所有类
  11. extract-text-webpack-plugin---webpack插件
  12. Java常用的排序查找算法
  13. windows7中文企业版安装英文语言包
  14. HTML5+CSS3+Bootstrap开发静态页面嵌入android webview中
  15. 2021数学建模B题详细思路
  16. lbochs模拟器最新版_bochs模拟器最新版下载
  17. python读取文件报错OSError: [Errno 22] Invalid argument: '\u202aC:\\Users\\yyqhk\\Desktop\\1.csv'
  18. 在word中一个符号怎么打,这个符号是上边一个白三角,下边一个黑三角,两个三角对称形成一个向右的箭头。
  19. 【HDU4622】Reincarnation-后缀自动机
  20. 学生管理系统IPO图_一篇文章带你走进数据流图的世界

热门文章

  1. Matlab绘制双波干涉
  2. oracle某几列数据进行相加,oracle 基础知识:两个number列相加
  3. 大数据迁移——Python+MySQL
  4. 快排是什么_揭秘快速排名原理
  5. 用Python做特效,分分钟碾压5毛党
  6. 【DevOps】2021.11 centos7搭建公司内网链接 ,集成openldap服务统一账号管理登录内网服务
  7. 安卓之Animator讲解
  8. MindFlow SEED——由自动驾驶而生的全能高效数据标注平台
  9. echarts自定义legend样式
  10. java+python+nodejs设备配件采购报修进销存管理系统