Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >特征选择,是否有可能将包装和嵌入式方法结合起来?

特征选择,是否有可能将包装和嵌入式方法结合起来?
EN

Data Science用户
提问于 2019-09-01 09:38:02
回答 1查看 359关注 0票数 0

我用神经网络预测PM10浓度(一个回归问题)。由于包装方法依赖于模型,因此通过对数据集中所有特征进行优化的神经网络模型将不能正常工作(因为包装器每次减少数据集中的特征,就必须重新调整神经网络的隐层大小)。

所以我的问题是,我可以使用嵌入方法(Lasso)作为包装方法中的估计量吗?

这是我要问的特性选择部分:

代码语言:javascript
运行
AI代码解释
复制
from mlxtend.feature_selection import SequentialFeatureSelector

feature_selector = SequentialFeatureSelector(LassoCV(),
           k_features=3,
           forward=True,
           verbose=0,
           scoring='neg_mean_absolute_error',
           cv=0)
features = feature_selector.fit(X, y)
filtered_features= cols[list(features.k_feature_idx_)]
print(filtered_features)

我是数据科学和机器学习的新手,所以我想知道这是对是错。

EN

回答 1

Data Science用户

回答已采纳

发布于 2019-09-03 19:20:44

我可以用Lasso作为“包装器”特征选择方法中的估计量吗?

这当然会起作用,但是套索的嵌入式功能选择不太可能在你的例子中真正发挥作用。前向顺序特征选择为每个要添加到所选特征集的候选特征建立模型,从没有特征开始。当你只建立三个特征时,拉索的特征选择会产生影响的唯一方法是,当它确定应该保留少于三个变量时,或者如果它以某种方式决定已经选择的特征之一的系数为零。后者将是非常令人惊讶的,前者只有在数据非常简单的情况下才有意义(只有两个变量对预测有任何重要贡献)。

因此,在这里,拉索很可能只是作为正则化,收缩系数,但很可能没有零位它们中的任何一个。

如何对神经网络进行特征选择?

因为Lasso是一个假设特征独立的线性模型,您可能会妨碍网络查找和使用非线性关系或特征交互的能力。

我怀疑这里没有“正确”的答案(没有免费午餐之类的东西)。不过,这里有一些想法。

  1. 不要进行特征选择。依靠神经网络,也许是用重正则化的方法(辍学、L1惩罚,尤其是第一层)来确定什么是重要的。
  2. 在包装器内进行超参数调优。这是非常昂贵的计算,但可能是最具表现力的方法,并可能是可行的小网。
  3. 修复包装器内的体系结构。您说“每次包装器减少数据集中的特性时,必须重新调整神经网络的隐藏层大小”,但这可能不是问题。通常情况下,如果一个网络的神经元数量超过了它所需要的数量,那么有几个网络可能会学习到几乎相同的特性。(您可以尝试将其转换为(2)的折衷版本,方法是应用一些网络剪枝,而不是完全的超参数调优。)
  4. 在包装器中使用另一个模型:一个可以捕获非线性和特征交互的模型,而不是线性模型,比如基于树的模型。这可能仍然不能将重要性归因于网络将获得的特性,但它应该比线性模型更接近。
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/58509

复制
相关文章
rabbitmq消息队列——"发布订阅"
三、”发布订阅” 上一节的练习中我们创建了一个工作队列。队列中的每条消息都会被发送至一个工作进程。这节,我们将做些完全不同的事情——我们将发送单个消息发送至多个消费者。这种模式就是广为人知的“发布订阅
用户1141560
2017/12/26
9840
rabbitmq消息队列——"发布订阅"
RabbitMQ发布订阅实战-实现延时重试队列
RabbitMQ是一款使用Erlang开发的开源消息队列。本文假设读者对RabbitMQ是什么已经有了基本的了解,如果你还不知道它是什么以及可以用来做什么,建议先从官网的 RabbitMQ Tutorials 入门教程开始学习。
用户2131907
2018/05/15
3.3K1
go rabbitmq 使用教程 ,go rabbitmq 简单队列,go rabbitmq work模式,go rabbitmq 订阅模式
使用Go的过程记录了全部的rabbitmq的go代码,方便自己下次Copy,go的资料比较少,seo估计很好做,流量速度过来。
高久峰
2023/06/18
2500
RabbitMQ六种队列模式之发布订阅模式
在上一章中,我们创建了一个工作队列,工作队列模式的设想是每一条消息只会被转发给一个消费者。本章将会讲解完全不一样的场景: 我们会把一个消息转发给多个消费者,这种模式称之为发布-订阅模式。
黎明大大
2021/03/09
2.2K0
rabbitmq发布订阅
对的,以前我们发送消息是直接由生产者将消息发送到队列,可是这种方式官方是不推荐的!
止术
2020/09/15
4920
rabbitmq主题订阅
上一篇文章讲述了关于直接连接交换机根据key找到对应队列的方式,实现特殊消息特殊队列消费的目的,但是事实上,生产环境下,对于消息的复杂性远不是这样就能够解决的!比如:你要监控有个用户的操作行为,用户的操作行为太多了 增删改查,如果一个一个的写难免会有遗漏,这个时候,我们可以用通配符 user.* 轻松解决!这就是mq的主题模式!
止术
2020/09/15
2030
RabbitMQ:订阅模型-消息订阅模式
订阅模型-消息订阅模式,也可以称为广播模式,生产者将消息发送到 Exchange,Exchange 再转发到与之绑定的 Queue中,每个消费者再到自己的 Queue 中取消息。
栗筝i
2022/12/28
1.6K0
RabbitMQ:订阅模型-消息订阅模式
RabbitMQ——镜像队列Master故障后的处理
默认情况下,镜像队列的master出现故障时,最老的mirror会被提升为新的master。如果新提升为master的这个mirror与原有的master并未完成数据的同步,那么就会出现数据的丢失,而实际应用中,出现数据丢失可能会导致出现严重后果。
陈猿解码
2023/02/28
5120
RabbitMQ——镜像队列Master故障后的处理
消息队列RabbitMQ核心:交换机(路由、主题、发布订阅)
在上一篇的学习中,使用创建了一个工作队列,我们假设的是工作队列背后,每个任务都恰好交给一个消费者(工作进程)。之前都是将消息发送到队列中,然后由消费者进行消费,其实在RabbitMQ有一个默认的交换机,在发消息时无需指定交换机。
百思不得小赵
2022/12/20
8700
消息队列RabbitMQ核心:交换机(路由、主题、发布订阅)
消息队列RabbitMQ核心:简单(Hello World)模式、队列(Work Queues)模式、发布订阅模式
消息队列RabbitMQ提供了六种工作模式:简单模式、work queues、发布订阅模式、路由模式、主题模式、发布确认模式。本文将介绍前三种工作模式。所有的案例代码都是使用Java语言实现。
百思不得小赵
2022/12/07
5720
消息队列RabbitMQ核心:简单(Hello World)模式、队列(Work Queues)模式、发布订阅模式
RabbitMQ在php中的使用----发布与订阅
安装教程 rabbitmq和php的amqp扩展教程网上有很多,大家可以自行查询,例如:Linux系统安装RabbitMQ及PHP安装amqp拓展库详细教程
美团骑手
2021/01/18
2K0
MQ界的“三兄弟”:Kafka、ZeroMQ和RabbitMQ,有何区别?该如何选择?
在现代的分布式系统和实时数据处理领域,消息中间件扮演着关键的角色,用于解决应用程序之间的通信和数据传递的挑战。在众多的消息中间件解决方案中,Kafka、ZeroMQ和RabbitMQ 是备受关注和广泛应用的代表性系统。它们各自具有独特的特点和优势,适用于不同的应用场景和需求。
网络技术联盟站
2023/07/22
12.5K0
MQ界的“三兄弟”:Kafka、ZeroMQ和RabbitMQ,有何区别?该如何选择?
RabbitMQ(三) ——发布订阅
RabbitMQ(三)——发布订阅 (原创内容,转载请注明来源,谢谢) 一、概述 RabbitMQ的发布订阅(Publish/Subscribe),其将生产者和消费者进一步解耦,生产者生
用户1327360
2018/03/07
1.2K0
RabbitMQ(三) ——发布订阅
【EventBus】EventBus 源码解析 ( 取消订阅 )
【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 ) 示例中 , 在 MainActivity 中调用
韩曙亮
2023/03/29
5230
RabbitMQ死信队列在SpringBoot中的使用
nack()与reject()的区别是:reject()不支持批量拒绝,而nack()可以.
喜欢天文的pony站长
2020/06/26
1.5K0
RabbitMQ入门:发布/订阅(Publish/Subscribe)[通俗易懂]
遇到的实例都是一个消息只发送给一个消费者(工作者),他们的消息模型分别为(P代表生产者,C代表消费者,红色代表队列):
全栈程序员站长
2022/07/18
1.8K0
RabbitMQ入门:发布/订阅(Publish/Subscribe)[通俗易懂]
RabbitMQ死信队列在SpringBoot中的使用
nack()与reject()的区别是:reject()不支持批量拒绝,而nack()可以.
喜欢天文的pony站长
2020/06/29
1.2K0
RabbitMQ死信队列在SpringBoot中的使用
rabbitmq实例_rabbitmq创建队列
RabbitMQ是一个受欢迎的消息代理,通常用于应用程序之间或者程序的不同组件之间通过消息来进行集成。具有高可用高并发的优点,适合集群服务器。采用 Erlang实现, 对主要的编程语言都有客户端支持。
全栈程序员站长
2022/11/09
1.4K0
rabbitmq实例_rabbitmq创建队列
RabbitMQ入门-消息订阅模式
###消息派发 上篇《RabbitMQ入门-消息派发那些事儿》发布之后,收了不少反馈,其中问的最多的还是有关消息确认以及超时等场景的处理。 楼主,有遇到消费者后台进程不在,但consumer连接还在,当前消息是unacked状态,导致这个消息一直不被消费 队列在等待回复的时候,这个消息是怎么存放的?如果一直没有返回有超时么? ... 这里再对消息确认做以下补充 有关超时 RabbitMQ是没有超时概念的,如果一个消费者消费一条消息要花费很长时间,比如10分钟,那么这个过程会一直进行下去。除非你采用其他策略来
JackieZheng
2018/01/16
8920
RabbitMQ入门-消息订阅模式
点击加载更多

相似问题

Azure DevOps释放管道

11

Azure Devops条件释放管道

16

Azure DevOps在前提下无法验证Kubernetess服务连接

11

Azure DevOps释放管道失效

15

Azure DevOps多重释放管道

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文