python分类时特征选择_关于python:是否有可用于分类数据输入的特征选择算法?...

我正在训练一个具有10个左右分类输入的神经网络。 在对这些分类输入进行一次热编码之后,我最终将大约500个输入馈入网络。

我希望能够确定我每个分类输入的重要性。 Scikit-learn具有许多功能重要性算法,但是这些算法中的任何一种都可以应用于分类数据输入吗? 所有示例均使用数字输入。

我可以将这些方法应用于"一键编码"输入,但是在应用于二进制输入后如何提取含义? 如何判断分类输入中的特征重要性?

Ive已成功使用支持discrete_features=True的mutual_info_score。

看看scikit-learn.org/stable/modules/

谨慎使用单点编码,因为您将特征空间的维数增加了50倍。您还可以考虑使用随机森林而不是神经网络,因为随机森林方法具有内置的特征重要性表征。

感谢您的意见。 @IgorRaush,我可以像这样使用common_info_classif函数:l_importance = mutual_info_classif(X, y, discrete_features=True)但是可以确认我在X数组中编码离散特征的方式。显然,它必须是一个numpy数组,因此大多数输入都必须进行编码。我可以使用离散索引吗?如果我对输入进行了二值化,那么将很难从功能输出中提取含义,因为功能是如此分离。如果这些是我的输入:X = [[A, X, alpha], [B, X, beta], [B, Y, gamma]]我将如何编码?谢谢 -

@VivekKumar感谢您的回复。我知道如何编码分类输入。您是否暗示最佳实践是在单热编码输入上运行标准特征选择算法?如果是这种情况,您将如何包装输出以确定每个功能的重要性,而不是确定每个热编码列的重要性?谢谢

@ A555h5似乎实际上并不需要是一个Numpy数组,您提供的列表也可以作为输入正常工作(尽管您可以将Numpy数组与dtype=np.str一起使用,该数组包含字符串并且也可以使用)。

通常,对于这种情况,您将使用索引编码,其中分类功能的每个级别都映射到整数0、1等。请查看Scikit-learn中的LabelEncoder或Pandas中的分类系列。

在回答您对Vivek的问题时,这取决于您要完成的工作。您可以使用重要性度量来修剪整个功能("功能选择"),也可以一键编码它们并仅修剪某些级别("值选择")。我见过两种使用方法。

感谢您的回答@IgorRaush-一个快速的问题。如果我在同一数据集中混合了分类特征和数字特征,那么该如何编码?我想一起考虑它们,因为我需要了解它们之间的相互影响。我应该将数字视为分类数字(因为失去幅度,这似乎是错误的),还是对分类数字使用索引编码方法并与数字结合?再次感谢

在某些情况下,在进入scikit-learn之前可能值得探索您的数据集。我通常使用Wekas GUI玩一些。在Weka中,您可以使用多种算法来可视化和评估特征。如果数据集太大,则将其稍微修剪一下。在此处获取Weka:cs.waikato.ac.nz/ml/weka有关此处的属性选择的更多信息:wiki.pentaho.com/display/DATAMINING/Attribute+Selection

由于编码特征之间的关系,在一种热编码上使用特征选择算法可能会导致错过。例如,如果您将n个值的特征编码为n个特征,并且已选择m个中的n-1个,则不需要最后一个特征。

由于您的功能数量很少(?10),因此功能选择对您的帮助不大,因为您可能只能减少其中的几个而不会丢失太多信息。

您写道,一种热编码将10个要素转换为500个,这意味着每个要素都有大约50个值。在这种情况下,您可能会对离散化算法更感兴趣,可以对值本身进行操作。如果值隐含顺序,则可以对连续特征使用算法。另一种选择是简单地忽略稀有值或与概念没有强相关性的值。

如果您使用特征选择,则大多数算法将对分类数据起作用,但您应提防极端情况。例如,@ Igor Raush建议的相互信息是一种很好的措施。但是,具有许多值的特征往往比具有较少值的特征具有更高的熵。反过来,这可能会导致更高的相互信息,并会偏向许多价值特征。一种解决此问题的方法是通过将互信息除以特征熵来进行归一化。

可能会帮助您的另一套功能选择算法是包装器。他们实际上将学习委托给分类算法,因此,只要分类算法可以应对,它们就不会影响表示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java隐含转化_java中自动转换和强制转换还有隐含转换

匿名用户1级2016-08-29 回答转型被用来将一个数值从一种类型转换到另一种类型。下面的程序连续使用了三个转型。那么它到底会打印出什么呢?public class Multicast{public static void main (String[] args){System.out.println((int)(char)(byte) -1);}}无论你怎样…

一个域名解析到另一个域名_注册域名公司|教你如何注册一个.net域名

近几年各后缀域名注册量都在增加,很多行业知道线上业务平台搭建的重要性,都优先制作网站布局线上,建站肯定需要域名,所以这也是带动域名注册量上涨原因之一。.COM、.NET域名一直是建站注册域名首选,.COM域名大家可能相…

java jedis connect timed out_Java连接Redis connection timed out 报错的解决方法

Java连接Redis connection timed out 报错的解决方法踩坑场景在使用 RedisTemplate 连接 Redis 进行操作的时候,发生了如下报错:报错信息如下:Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /192.168.73.10:6…

python自动保存ping结果_利用python获取Ping结果示例代码

前言本文主要跟大家分享了关于利用python获取Ping结果的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧。示例代码:# -*- coding: utf-8 -*-import subprocessimport redef get_ping_result(ip_address):p…

富文本存储型XSS的模糊测试之道

富文本存储型XSS的模糊测试之道 凭借黑吧安全网漏洞报告平台的公开案例数据,我们足以管中窥豹,跨站脚本漏洞(Cross-site Script)仍是不少企业在业务安全风险排查和修复过程中需要对抗的“大敌”。 XSS可以粗分为反射型XSS和存储型…

java join()用法_四种联系(join)的区别及用法

链接:作为动词,它表示将两个或多个表的内容结合在一起并产生一个结果集,该结果集对每个表的列和行进行合并。表的联接一般都使用它们共有的数据。例如,您可以对有一个共同 pub_id 列的 titles 表和 publishers 表联接,…

python无效的类字符串_Python基础-字符串处理

​你好,我是goldsunC让我们一起进步吧!字符串操作与处理字符串是编程语言中经常会遇见的东西,而字符串又和那些编程语句什么的不太一样,我们可能需要对一个字符串进行各种各样的处理,后面我将给出我整理的一些常用的对…

phpstorm xdebug配置

phpstorm 8.0.3版本 1.本身自带xdebug插件 2.在xampp的php.ini中最后中添加(如果有[XDebug]配置替换) [XDebug]zend_extension "D:\Program Files\xampp\php\ext\php_xdebug.dll";xdebug.profiler_append 0;xdebug.profiler_enable 1;xdebu…

php xml 返回 微信,php版微信返回用户text输入的方法

本文实例讲述了php版微信返回用户text输入的方法。分享给大家供大家参考,具体如下:获得用户输入的内容,并发回相同内容//获取post数据// $PostData $HTTP_RAW_POST_DATA;$PostData file_get_contents("php://input");//判断POST是…

python加密敏感信息_仅需10行代码,使用python加密用户敏感数据

原标题:仅需10行代码,使用python加密用户敏感数据数据分析师必须要遵守的一个规则就是数据保密,但在跨部门沟通的时候,难免会有数据泄露的情况,所以,对于用户的姓名、手机号、地址等敏感信息,一…

springmvc+ztree v3实现类似表单回显功能

在做权限管理系统时,可能会用到插件zTree v3,这是一个功能丰富强大的前端插件,应用很广泛,如异步加载菜单制作、下拉选择、权限分配等。在集成SpringMVC中,我分别实现了zTree的添删改查,本节主要实现类似表单回显功能。…

php数组基础知识,PHP 数组基础知识小结

php函数有很多,需要时查询api。/*#数组 没有限制大小:$arr[0]1;$arr[1]2; $arrarray("0","1");$list($num1,$num2)$arr;array range(int low,int high[,int step])low最小数,high最高数,step步长int array_unshift(array…

python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器

使用pycharm、跳板机连接内网服务器接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器。总体就是实验室服务器仅限内网访问,同时实验室也提供了一个跳板机,可以先…

C语言事实上不简单:sizeof

问&#xff1a;C语言中一共同拥有多少个keyword&#xff1f; 答&#xff1a;32个。 答不上来的没关系。非常正常。我们玩的是程序的艺术。而不是背数字。只是这个特殊的数字1<<5也是非常好记的-.-。 问&#xff1a;sizeof是函数还是keyword&#xff1f; 第一次看到这个问…

php的可变函数,php之可变函数的实例详解

php之可变函数的实例详解php的可变函数&#xff0c;今天大概的了解下&#xff0c;是看php手册总结的&#xff0c;觉得用处不大&#xff1b;PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号&#xff0c;PHP 将寻找与变量的值同名的函数&#xff0c;并且尝试执行它。可…

Android应用安全开发之浅谈网页打开APP

一、网页打开APP简介 Android有一个特性&#xff0c;可以通过点击网页内的某个链接打开APP&#xff0c;或者在其他APP中通过点击某个链接打开另外一个APP&#xff08;AppLink&#xff09;&#xff0c;一些用户量比较大的APP&#xff0c;已经通过发布其AppLink SDK&#xff0c;开…

python history文件_【python之路19】文件操作

一、打开文件文件句柄 open(文件路径, 模式)打开文件时&#xff0c;需要指定文件路径和以何等方式打开文件&#xff0c;打开后&#xff0c;即可获取该文件句柄&#xff0c;日后通过此文件句柄对该文件操作。打开文件的模式有&#xff1a;r &#xff0c;只读模式【默认】w&…

php微信拍照图库js接口,ThinkPHP微信实例——JSSDK图像接口多张图片上传下载并将图片流写入本地...

发布图片最多可添加9张作品发布wx.config({debug: false,appId: {$signPackage["appid"]},timestamp: {$signPackage["timestamp"]},nonceStr: {$signPackage["noncestr"]},signature: {$signPackage["signature"]},jsApiList: [// 所…

2、在控制台上输出1—100数字

public class Test {// 定义类 public static void main(String[] args) {// 主函数&#xff0c;程序的入口 for (int i 1; i < 100; i) { System.out.print(i " "); } }}转载于:htt…

vue防抖和节流是什么_JavaScript防抖与节流,你知道多少?

JavaScript 的节流和防抖已经是老生畅谈的问题了&#xff0c;对于前端行业技术大牛来讲不过是小菜一碟&#xff0c;而对于绝大多数前端小白或初级工程师&#xff0c;绝对是必备的知识&#xff0c;值得学习。接下来小郭就带大家一起学习“防抖”与“节流”。防抖不知道大家第一次…