特征筛选10——MIC最大信息系数(有监督筛选)

2023-10-30

理论部分可以参考:https://blog.csdn.net/qq_27586341/article/details/90603140

互信息也是通过衡量x与y的线性关系,来判断特征的重要性,整个算法的思路是:

  1. x与y构成二维平面
  2. 对平面进行切分,将平面切块
  3. 看每个块里x与y的数量关系,如果x与y的数量越接近,互信息越多

示例代码

import pandas as pd


def load_data():  # 这个用来读取数据
    from sklearn.datasets import make_classification
    cla_x, cla_y = make_classification(n_samples=1000, n_classes=4, n_features=10, n_informative=8)
    x = pd.DataFrame(cla_x, columns=['f_1', 'f_2', 'f_3', 'f_4', 'f_5', 'f_6', "f_7", "f_8", "f_9", "f_10"])
    y = pd.Series(cla_y)
    return x, y


def mic(value_x: pd.DataFrame, value_y):
    def cal_mic(x, y):
        from minepy import MINE

        m = MINE()
        m.compute_score(x, y)
        return m.mic()

    x_values = []
    for co_index, col_x in value_x.iteritems():
        value = cal_mic(col_x, value_y)
        x_values.append(value)
    return x_values


if __name__ == '__main__':
    x_data, y_data = load_data()
    mic_values = mic(x_data, y_data)
    print(mic_values)  # mic值,可以选择最大的几个特征
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特征筛选10——MIC最大信息系数(有监督筛选) 的相关文章

随机推荐

  • 如何卸载--奇安信安全终端管理系统

    1 找到Entbase bat D Program Files x86 QAX 360safe EntClient conf 我的路径是这样的 2 右击奇安信 设置 防护 关闭自我保护 3 删除Entbase bat 中的两个qtpass
  • 一种改善调制宽带变换器的有意混叠方法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 AMWC 混叠调制宽带转换器 根据给定的硬
  • 绕过CDN寻找网站真实IP的方法汇总

    工作所需 将 绕过CDN寻找网站真实IP 的方法进行汇总 打开笔记 发现保存了好几篇以前收集的一些相关文章 文章都比较类似 方法大同小异 做个汇总 也添加一些自己积累 0x01 判断ip是否为网站真实ip 这个就很简单了 简单说下几个常见的
  • Transformer解析

    Transformer超详细解读 Transformer库 Transformer变形BERT等 https github com huggingface transformers 数据集下载 https mirrors tuna tsin
  • 动态内存管理

    对于内存我们了解道的就有栈区域 堆区 静态区 常量储存区 代码区 栈区 stack 指那些由编译器在需要的时候分配 不需要时自动清除的变量所在的储存区 如函数执行时 函数的形参以及函数内的局部变量分配在栈区 函数运行结束后 形参和局部变量去
  • linux下telnet批量验证某端口开放

    1 ip库 cat iplist txt 10 1 1 1 10 1 1 2 10 1 1 3 10 1 1 4 10 1 1 5 2 相关脚本 cat telnet sh bin bash Author jimmygong Email j
  • C++高频知识总结 p1

    总结 C C 是怎么实现接口的 C 11新特性 STL容器有哪些 vector list set dqueue的区别 iterator类型有哪些 C C 是怎么实现接口的 C 中 通过类实现面向对象的编程 而在基类中只给出纯虚函数的声明 然
  • mybatis insert操作返回值问题

  • MyBatis用户信息表的增删改查

    目录 前言 一 创建数据库 二 导入相关依赖 三 创建POJO实体 四 创建数据库连接信息配置文件 五 创建映射文件UserMapper xml 六 创建MyBatis的核心配置文件 七 创建MyBatis的工具类 八 创建测试类 九 运行
  • 聚类、缺失处理、特征分析——模型几个重要的处理过程(含案例实操)

    在数据建模过程中 尤其是通过线性回归 逻辑回归等传统机器学习算法进行模型训练之前 往往需要对样本数据进行清洗 其中缺失值处理是一种常用方法 根据特征的类别属性与缺失特点 采用合适的方法进行缺失处理 可以有效提升模型拟合的效果 甚至在某些场景
  • Linux 安装node.js 16

    操作环境 Linux centOS 7 6 node js 16 1 首先下载安装包 服务器有网的情况下可以使用 为什么使用16 因为版本太高和系统不匹配 wget https nodejs org dist v16 16 0 node v
  • js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法

    获取所有参数 function test for var i 0 i
  • VSCode安装使用插件推荐

    1 介绍 VSCode Visual Studio Code 是由微软研发的一款免费 开源的跨平台文本 代码 编辑器 算是目前前端开发几乎完美的软件开发工具 2 VSCode下载安装 VSCode下载链接 https code visual
  • mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索

    以MySQL为例 首先我们知道mysql注释符有 后面有空格 三种 在SQL注入中经常用到 但是不一定都适用 笔者在sqlilabs通关过程中就遇到不同场景用的注释符不同 这让我很疑惑 让我们来深入挖掘一番 篇幅比较长 省时间可以跳到最后看
  • 十七、K8s+gitlab+Jenkins建立CI/CD解决方案

    一 什么是CI CD CI 可持续集成 CD 可持续交付 可持续部署 具体含义请参考 https blog csdn net tushanpeipei article details 118082462 spm 1001 2014 3001
  • 微信小程序实现微信支付功能流程

    微信小程序实现微信支付功能流程 微信支付 https pay weixin qq com wiki doc api index html 图片说明 进行选择接入 图片说明 图片说明 步骤 小程序调用登录接口 获取用户的openid wx l
  • 逆置链表(顺序表和单链表)

    目录 题目内容 算法分析 概要分析 函数 1 顺序表 2 单链表 算法流程图 逆置顺序表流程图 逆置单链表流程图 源代码 顺序表代码 单链表代码 题目内容 试分别用顺序表和单链表作为存储结构 实现线性表就地逆置的操作 所谓 就地 指辅助空间
  • CMake指定C++版本

    由于C 升级 导致很多代码需要用 C 11 的规范进行编译 方案 修改 Makefile 手动修改在 Makefile 中 指定编译 C 版本为增加编译开关 std c 11 如下例 CFLAGS std c 11 使用 CMake 指定
  • vue脚手架项目部署到服务器,vue脚手架项目发布

    使用命令 npm run build即可 我们在命令行中输入npm run build命令后 vue cli会自动进行项目发布打包 你在package json文件的scripts字段中可以看出 你执行的npm run build命令就相对
  • 特征筛选10——MIC最大信息系数(有监督筛选)

    理论部分可以参考 https blog csdn net qq 27586341 article details 90603140 互信息也是通过衡量x与y的线性关系 来判断特征的重要性 整个算法的思路是 x与y构成二维平面 对平面进行切分