特征工程筛选重要变量

特征筛选主要分为3个方法:过滤法、嵌入法(经典的一些树模型比如xgboost)、包裹法(经典的RFECV,RFE递归特征消除法)

过滤法更快速,但更粗糙。
包装法和嵌入法更精确,比较适合具体到算法去调整,但计算量比较大,运行时间长。
当数据量很大的时候,优先使用方差过滤和互信息法调整,再上其他特征选择方法。

在sklearn中,常用三种方法来评判特征与标签之间的相关性:卡方、F检验、互信息。三种方法的适用领域有何不同
t检验和卡方检验、F检验、互信息法是常用的统计分析方法,它们在不同的情况下有不同的应用优先级。

t检验:适用于小样本情况下,用于比较两个样本均值是否有显著差异。

我不懂你们同学为啥会选择t检验(比较特征与target的均值没用呀),然后开头也没有方差过滤?

卡方检验:适用于分析两个及两个以上分类变量之间的关联性。主要用于比较理论频数和实际频数的吻合程度或拟合优度问题。

F检验:适用于比较两个或多个样本方差是否有显著差异。常用于方差分析(ANOVA)中,用于比较多个样本均值是否有显著差异。

互信息法:适用于特征选择和特征相关性分析。通过计算特征与目标变量之间的互信息量,来评估特征对目标变量的重要性。

在选择使用这四种方法时,可以根据具体问题和数据类型来确定优先级:

如果需要比较两个样本均值是否有显著差异,且样本量较小,可以首选t检验。
如果需要分析两个及两个以上分类变量之间的关联性,可以选择卡方检验。
如果需要比较多个样本方差是否有显著差异,可以使用F检验。
如果需要进行特征选择或特征相关性分析,可以考虑使用互信息法。

我的思路,我们应该用fliter中的方差过滤加互信息方法,然后嵌入法中选用xgboost方法

如果老师问为何没有用包裹法,答:我们电脑性能不太好,RFECV需要算力。还有时间不充裕。还有虽然包装法的效果是所有特征选择方法中最利于提升模型表现的,它可以使用很少的特征达到很优秀的效果?(包装法是一种特征选择方法,它通过反复创建模型并保留最佳特征或剔除最差特征的方式来选择特征子集。包装法的效果被认为是所有特征选择方法中最利于提升模型表现的,原因如下

考虑特征之间的相互作用:包装法在每次迭代时都会重新创建模型,这意味着它可以考虑特征之间的相互作用。通过不断调整特征子集,包装法可以更好地捕捉特征之间的关系,从而提高模型的表现。

个性化特征选择:包装法根据保留或剔除特征的顺序进行排名,最终选出一个最佳子集。这意味着包装法可以根据具体问题的需求选择最适合的特征子集,从而提高模型的性能。

可以使用很少的特征:由于包装法是一种贪婪的优化算法,它会在每次迭代中选择最佳特征或剔除最差特征。这意味着包装法可以使用很少的特征来达到很优秀的效果,从而减少了特征的维度,提高了模型的效率。

总之,包装法通过考虑特征之间的相互作用、个性化特征选择和使用很少的特征来达到很优秀的效果,因此被认为是所有特征选择方法中最利于提升模型表现的方法。)但是包装法和嵌入法在特征选择中都是相对精确的方法,它们可以在特征数目相同时达到相似的效果。这是因为它们都是基于算法自身的选择来完成特征选择的,我们已经使用了xgboost算法模型了,没必要再使用一个算法。

包装法通过训练评估器并使用评估器的属性(如coef_或feature_importances_)来获得每个特征的重要性。然后,它会逐步删除最不重要的特征,直到剩下规定数量的特征。这种方法可以更准确地选择特征,因为它考虑了特征之间的相互作用。

嵌入法也是一种基于算法的特征选择方法,它在算法训练过程中直接选择最佳特征。它通过在训练过程中调整特征的权重或系数来选择最佳特征。这种方法可以更准确地选择特征,因为它考虑了特征与目标变量之间的关系。

因此,当特征数目相同时,包装法和嵌入法都可以通过算法自身的选择来达到相似的效果。它们都可以更准确地选择特征,以提高模型的性能和泛化能力。在这里插入图片描述
当特征选择完成后,可以直接训练模型了,但是可能由于特征矩阵过大,导致计算量大,训练时间长的问题,要进行降低特征矩阵维度。(但是我们此项任务没必要降维,特征数量很小)

常见的降维方法除了以上提到的基于L1惩罚项的模型以外,另外还有主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。

PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。

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

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

相关文章

【代码随想录】刷题笔记Day46

前言 刚考完自辩,Chat回答举例什么的真方便。早上做组会PPT去了,火速来刷题! 139. 单词拆分 - 力扣(LeetCode) 单词是物品,字符串s是背包,单词能否组成字符串s,就是问物品能不能把…

Kotlin: Jetpack — ViewModel简单应用

ViewModel 概览 Android Jetpack 的一部分。 ViewModel 类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面,以及封装相关的业务逻辑。 它的主要优点是,它可以缓存状态,并可在配置更改后持久保留相应状态。这意味着在 activity 之…

Android studio ViewPager2应用设计

一、ViewPager2应用场景: ViewPager2是一个功能强大的滑动容器,提供灵活的页面切换和布局定制功能,使得应用程序界面更加丰富和交互性强,主要应用于以下场景: 1)、实现引导页或欢迎页:ViewPager2可用于创建引导页/欢迎页,让用户通过滑动浏览介绍应用程序功能/展示欢迎…

SpringBoot学习(五)-Spring Security配置与应用

注:此为笔者学习狂神说SpringBoot的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!! Spring Security Spring Security是一个基于Java的开源框架,用于在Java应用程…

【深度学习】cv领域中各种loss损失介绍

文章目录 前言一、均方误差二、交叉熵损失三、二元交叉熵损失四、Smooth L1 Loss五、IOU系列的loss 前言 损失函数是度量模型的预测输出与真实标签之间的差异或误差,在深度学习算法中起着重要作用。具体作用: 1、目标优化:损失函数是优化算法…

Leetcode2807. 在链表中插入最大公约数

Problem: 2807. 在链表中插入最大公约数 文章目录 题目思路注意点Code 题目思路 模拟插入流程: 检测当前节点是否有后置结点;将当前结点与后置结点的值做最大公约数处理得到新结点的值,然后插入到当前结点之后;再将检测结点向后…

文件归类妙招:用关键字替换改扩展名方法,文件重命名技巧

在日常工作中,文件的数量会随着时间的推移不断增加。如果文件没有得到适当的归类和整理,就会导致很难找到所需的文件。所以文件归类是非常重要的任务。现在来看云炫文件管理器一些实用的文件归类妙招:用关键字替换修改文件扩展名的方法&#…

Kubernetes复习总结(二):Kubernetes容器网络

2、Kubernetes容器网络 1)、Docker网络原理 Docker默认使用的网络模型是bridge,这里只讲bridge网络模型 1)容器之间通信原理 当安装完docker之后,docker会在宿主机上创建一个名叫docker0的网桥,默认IP是172.17.0.1…

[Verilog语言入门教程] 乘法器(顺序 Booth 并行 Wallace) 原理与实现

依公知及经验整理,原创保护,禁止转载。 专栏 《Verilog》 <<<< 返回总目录 <<<< 乘法器可以分为以下几种类型: 顺序乘法器(Sequential Multiplier):顺序乘法器是最简单的乘法器类型,采用逐位相乘的方法实现。这种乘法器适用于小规模的乘法运算…

pytest常用的第三方插件介绍

本节介绍了如何安装和使用第三方插件。如果你想要编写自己的插件&#xff0c;请参阅“编写插件”。 通过pip可以轻松安装第三方插件&#xff1a; pip install pytest-NAME pip uninstall pytest-NAME如果已经安装了插件&#xff0c;pytest会自动找到并集成它&#xff0c;无需手…

AI动作冒险电影《加勒比海盗:失落的宝藏》(下)

AI动作冒险电影《加勒比海盗&#xff1a;失落的宝藏》&#xff08;下&#xff09; 在宝藏岛屿的探险中&#xff0c;杰克船长不断遭遇铁钩胡克的追击&#xff0c;并陷入了一系列生死危机中。然而&#xff0c;当杰克终于找到宝藏所在的洞穴时&#xff0c;却发现了一个令人震惊的事…

HarmonyOS 开发基础(五)Button

HarmonyOS 开发基础&#xff08;五&#xff09;Button Entry Component struct Index {build() {Row() {Column() {// Button&#xff1a;ArkUI 的基础组件 按钮组件// label 参数&#xff1a;文字型按钮Button(我是按钮)// width&#xff1a;属性方法&#xff0c;设置组件的宽…

shell编程-分支语句和循环结构

流控制: •在一个shell脚本中的命令执行顺序称作脚本的流。大多数脚本会根据一个或多个条件来改变它们的流。 •流控制命令:能让脚本的流根据条件而改变的命令称为条件流控制命令 •exit语句:退出程序的执行&#xff0c;并返回一个返回码&#xff0c;返回码为0正常退出&#…

Opencv实时获取摄像头数据(附带解析)

# 注意这段代码不能直接在jupyter中使用,否则会崩溃 import cv2 # 引入CV库 """ 读取摄像头数据&#xff0c;实时获取摄像头数据&#xff0c;同时按q退出 """ # 创建窗口 cv2.namedWindow(video, cv2.WINDOW_NORMAL) cv2.resizeWindow(video, 3…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)在EventLoop中处理被激活的文件描述符的事件

文件描述符处理与回调函数 一、主要概念 反应堆模型&#xff1a;一种处理系统事件或网络事件的模型&#xff0c;当文件描述符被激活时&#xff0c;可以检测到文件描述符&#xff1a;在操作系统中&#xff0c;用于标识打开的文件、套接字等的一种数据类型 处理激活的文件描述符…

BUUCTF--pwnable_start1

查看保护&#xff1a; 32位程序保护全没开&#xff0c;黑盒测试下效果&#xff1a; 存在栈溢出&#xff0c;那么这题的想法就是直接ret2shellcode了。IDA中看看具体流程&#xff1a; 出奇的少&#xff0c;这题不能看反汇编的代码&#xff0c;直接去看汇编&#xff1a; 主要就2个…

【设计模式之美】面向对象分析方法论与实现(一):需求分析方法论

文章目录 一. 需求举例二. 对案例进行需求分析1. 第一轮基础分析2. 第二轮分析优化3. 第三轮分析优化4. 第四轮分析优化5. 最终确定需求 三. 小结 本文主要描述&#xff1a; 面向对象的需求分析方法论 一. 需求举例 假设&#xff0c;你正在参与开发一个微服务。微服务通过 HTT…

数据结构-怀化学院期末题(490)

哈希查找 题目描述&#xff1a; 实现哈希查找。要求根据给定的哈希函数进行存储&#xff0c;并查找相应元素的存储位置。本题目使用的哈希函数为除留取余法&#xff0c;即H(key)key%m&#xff0c;其中m为存储空间&#xff0c;冲突处理方法采用开放定址法中的线性探测再散列&am…

(C语言)指针的进阶

1.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2.指针的大小是固定的4/8个字节(32位平台/64位平台)。 3.指针是有类型&#xff0c;指针的类型决定了指针的-整数的步长&#xff0c;指针解引用操作的时候的权限。 4.指针的运算。 一、关于两…

msvcr120.dll丢失怎样修复,三种修复msvcr120.dll丢失的方法

"msvcr120.dll"是一个重要的库文件&#xff0c;用于支持Microsoft Visual C 2013 Redistributable软件包中的应用程序。在本文中&#xff0c;我们将介绍"msvcr120.dll"文件的重要性和作用&#xff0c;并探讨当msvcr120.dll丢失怎样修复的办法。以及msvcr12…