Sklearn Chi2 用于特征选择

2023-12-22

我正在学习 chi2 用于特征选择,并遇到了类似的代码this https://chrisalbon.com/machine_learning/feature_selection/chi-squared_for_feature_selection/

然而,我对 chi2 的理解是,分数越高意味着该功能是more独立(因此对模型不太有用),因此我们会对得分最低的特征感兴趣。然而,使用 scikit learns选择KBest http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html,选择器返回值highestchi2 分数。我对使用 chi2 测试的理解是否不正确?或者 sklearn 中的 chi2 分数是否会产生 chi2 统计数据以外的其他内容?

请参阅下面的代码了解我的意思(主要是从上面的链接复制的,除了结尾)

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
import pandas as pd
import numpy as np

# Load iris data
iris = load_iris()

# Create features and target
X = iris.data
y = iris.target

# Convert to categorical data by converting data to integers
X = X.astype(int)

# Select two features with highest chi-squared statistics
chi2_selector = SelectKBest(chi2, k=2)
chi2_selector.fit(X, y)

# Look at scores returned from the selector for each feature
chi2_scores = pd.DataFrame(list(zip(iris.feature_names, chi2_selector.scores_, chi2_selector.pvalues_)), columns=['ftr', 'score', 'pval'])
chi2_scores

# you can see that the kbest returned from SelectKBest 
#+ were the two features with the _highest_ score
kbest = np.asarray(iris.feature_names)[chi2_selector.get_support()]
kbest

你的理解搞反了。

chi2 检验的原假设是“两个分类变量是独立的”。因此,chi2 统计量的值较高意味着“两个分类变量是相关的”并且对于分类更有用。

SelectKBest 为您提供基于较高 chi2 值的最佳两个 (k=2) 特征。因此,您需要获取它提供的那些功能,而不是获取 chi2 选择器上的“其他功能”。

您从 chi2_selector.scores_ 获取 chi2 统计数据以及从 chi2_selector.get_support() 获取最佳功能是正确的。它会根据独立测试的 chi2 测试为您提供“花瓣长度 (cm)”和“花瓣宽度 (cm)”作为前 2 个特征。希望它能澄清这个算法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sklearn Chi2 用于特征选择 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 我应该使用 Python 双端队列还是列表作为堆栈? [复制]

    这个问题在这里已经有答案了 我想要一个可以用作堆栈的 Python 对象 使用双端队列还是列表更好 元素数量较少还是数量较多有什么区别 您的情况可能会根据您的应用程序和具体用例而有所不同 但在一般情况下 列表非常适合堆栈 append is
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何使用 Selenium 和 ChromeDriver 解决 TypeError: 'module' object is not callable 错误 [重复]

    这个问题在这里已经有答案了 代码试验 from selenium import webdriver from selenium webdriver chrome options import Options as Chromeoptions
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • 如何将 GAE 中一种 Kind 中的所有实体复制到另一种 Kind 中,而无需显式调用每个属性

    我们如何使用function clone entity 如中所述在 Python 中复制 Google App Engine 数据存储中的实体 而无需在 编译 时知道属性名称 https stackoverflow com question
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2

随机推荐

  • 如何向 Chart.js 添加数据集切换?

    我正在使用 Chart js 创建折线图 我想要四个不同的数据集 默认情况下它们都是可见的 但可以通过单击按钮来打开和关闭 如何才能实现这一目标 我似乎无法在文档中找到答案 addData removeData and update all
  • 如何检查命令是否可以执行?

    我有一个脚本将向用户显示一些压缩选项 gzip zip 和 bzip 由于这意味着可以在 Linux 和 Windows 上运行 并且 Zlib 库不可用 因此我必须使用 Unix 命令来压缩任何文件 当然 如果脚本在 Windows 上运
  • 如何使用 T-SQL 进行数据透视表?

    如何从此格式转换表格 Id Data Section 1 1AAA AAA 1 1BBB BBB 1 1CCC CCC 2 2AAA AAA 2
  • Python Websockets 无法通过互联网连接

    我只是想通过互联网获得一个非常基本的 websocket 连接 该代码看起来不错 因为它在连接到本地主机时有效 但由于某种原因 当我尝试通过互联网使用它时失败了 我正在使用网络套接字 https pypi python org pypi w
  • 为 pyspark 设置 SparkContext

    我是新手spark and pyspark 如果有人解释一下到底是什么 我将不胜感激SparkContext参数做什么 我该如何设置spark context对于Python应用程序 See here http spark apache o
  • 为什么 Cloneable 没有被弃用?

    人们普遍认为CloneableJava 中的接口已损坏 造成这种情况的原因有很多 我就不一一列举了 others http howtodoinjava com 2012 11 10 cloneable interface is broken
  • 将生成器对象转换为列表以进行调试[重复]

    这个问题在这里已经有答案了 当我使用 IPython 在 Python 中进行调试时 有时会遇到断点 并且我想检查当前是生成器的变量 我能想到的最简单的方法是将其转换为列表 但我不清楚在一行中执行此操作的简单方法是什么ipdb 因为我对 P
  • 如何使用 matplotlib 为烛台的灯芯部分着色?

    我正在寻找使用 matplotlib 将烛台的灯芯部分变成黑色 我在文档中找不到任何提及它的内容 但我已经看到图片示例表明它可以完成 这是我目前拥有的 这是灯芯被涂成黑色的示例 Update 我使用了下面提供的解决方案 但稍微更改了代码以删
  • 将 iOS (iPhone) 应用程序移植到 Mac?

    有没有首选的方法来解决这个问题 有问题的应用程序不太大 我花了几个月的时间编写的单人游戏 编辑 我应该补充一点 我没有 mac 开发经验 除了作为一名 iOS 开发人员自然而然的事情之外 编辑 游戏中大量使用的类 NSObject UIVi
  • 为注释字段设置默认空值时出错

    为什么我收到错误 属性值必须是常量 不是null持续的 Target ElementType TYPE Retention RetentionPolicy RUNTIME public interface SomeInterface Cla
  • 尝试从 matlab 调用 dll 函数导致崩溃

    我尝试在 MATLAB 中使用第三方外部 DLL 来自 usbmicro 但它总是使 MATLAB 崩溃 这是来自说明 C 程序中函数调用语法的文档 int USBm About char about 我尝试了这个 MATLAB 脚本 是的
  • 如何在受限服务器上安装 Perl 模块?

    我有一个可以通过 ssh 连接的服务器 但仅此而已 否则它就完全与外界隔绝了 我正在尝试部署一些我编写的脚本 但它们有几个 Perl 依赖项 Params Validate XML Simple 等 我无法通过 yum 获取它们 因为我们的
  • preStart 钩子:给 actor 本身的消息

    假设我覆盖了preStart挂接并发送消息至self Class SomeActor extends Actor override def preStart Unit self SomeMessage 我可以期待吗SomeMessage将是
  • Android:TabLayout 不工作

    我正在尝试官方开发人员网站上的 TabLayout 教程 我没有复制粘贴它 也没有对其中的拼写错误进行一些细微的更改和更正 package com org example import android app TabActivity imp
  • 将希腊字符添加到轴标题

    我想在 R 中的条形图的 y 轴上添加一个希腊字符 问题是我需要将这个角色整合到标题中 我想写 Diameter of aperture mu m 在轴标签中 With ylab expression 我可以写希腊字符 ylab axis
  • 如何在类组件中使用useMediaQuery

    当使用函数作为组件时 您可以使用useMediaQuery来自 Material ui 的钩子 然而 它没有向您展示如何在类中使用这个钩子 所以我做了一些研究 发现你可以通过这样做在课堂上使用它 import React from reac
  • python 将字符串转换为参数列表

    我可以在 python 中将字符串转换为参数列表吗 def func args for a in args print a args a func a 2 b 3 I want the following work like above c
  • 如何使用 PHP 确定文件年龄?

    有什么方法可以使用 PHP 确定文件夹中图像的文件年龄 我想删除超过 2 小时的旧文件 是否可以在上传到文件夹时在其文件名中添加时间戳名称 如果是这样 请给我一个例子 thanks if time filemtime filename gt
  • 如何知道missModalViewControllerAnimated何时启动以及何时完成?

    有没有办法知道dismissModalViewControllerAnimated何时启动以及何时完成 例如viewWillAppear和viewDidAppear的习惯用法 与其他动画不同 这个动画似乎没有委托来告诉您 是的 而且比你想象
  • Sklearn Chi2 用于特征选择

    我正在学习 chi2 用于特征选择 并遇到了类似的代码this https chrisalbon com machine learning feature selection chi squared for feature selectio