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

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. 高可用架构设计之无状态服务
  2. mSystems:干旱对土壤微生物组的影响
  3. Tiles Framework
  4. 【杂谈】手把手带你配置深度学习环境
  5. apue 2013-03-14
  6. ==与equals 的使用比较
  7. 牛客网(剑指offer) 第十五题 反转链表
  8. golang 获取本地ip
  9. vue2.0项目引入element-ui
  10. windows安装64位Pygame方法
  11. 收集一些优秀的DoNet开源项目
  12. java界面化二叉排序树_层次序创建二叉树(图形界面和控制台输入实现)
  13. 西北民族大学c语言程序设计复试科目,2016年西北民族大学中国民族信息技术研究院962C语言程序设计复试笔试仿真模拟题...
  14. 每日一题(50)—— 各类型与零值的比较
  15. C#中使用FFMPEG切割、合并视频。
  16. Java 中import的用法,以及类的种类
  17. Rulo扫地机器人app_米家扫拖机器人1T测评|米家扫拖机器人1T的3D避障实际效果如何?...
  18. 安全伞项目-腾讯智能对话平台TBP使用
  19. 重复在学习中的重要性
  20. 欲说还休,欲说还休,却道天凉好个秋

热门文章

  1. 静态随机存取存储器(SRAM)
  2. 物体检测中的困难样本挖掘(Online Hard Sample Mining)
  3. 国外常用的英文站链接工具
  4. 原动力×云原生正发声 降本增效大讲堂
  5. 分布式系统设计经典论文
  6. Python学子之如何退出python 命令行
  7. 前端学习笔记——JavaScript进阶
  8. Unity Shader variants (shader 变体)
  9. 瑞昱 RTL8710 与乐鑫 ESP8266 对比
  10. Codeforces Round #829 (Div. 2)