特征及特征选择

1、特征(Feature)是什么?

        特征是数据集中的一个可量化的属性或变量,用于描述数据点的特性。

        特征可以是连续的数值,如身高、体重等,也可以是离散的类别,如性别、种族等。

        常见的特征有边缘、角、区域等。

特征分类:

        相关特征:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果;

        无关特征:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升;

        冗余特征:不会对我们的算法带来新的信息,或者这种特征信息可由其他的特征推断出。

2、降维技术主要分为两类:特征选择和特征提取。

降维的原因:

        (1)数据的多重共线性导致解的空间不稳定, 维度灾难,模型复杂,导致模型的泛化能力弱

        (2)高维空间样本具有稀疏性,导致模型比较难找到数据特征

        (3)过多的变量会妨碍模型查找规律;

        (4)有时特征矩阵过大, 导致计算量比较大训练时间长的问题。

降维的优势:

        (1)减少特征属性的个数,剔除不相关或冗余特征,减少特征个数,提高模型精确度,减少运行时间。

        (2)确保特征属性之间是相互独立

3、特征选择根据特征的相关性冗余度从N个特征中选择其中M(M<=N)个子特征,并且在M个子特征中,准则函数可以达到最优解。是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。为了从大规模的特征空间中提取与所需任务相关特征

        (1)特征选择的目的:①减少特征数量、降维;②降低学习任务的难度;③提升模型的效率使模型泛华能力更强;④减少过拟合增强对特征和特征值之间的理解。

        (2)获取尽可能小的特征子集,不显著降低分类精度、不影响分类分布以及特征子集应具有稳定、适应性强等特点。

        (3)特征子集的产生过程其实是一个搜索寻优的过程,可以分为5个阶段:搜索方向、搜索策略、评价准则、停止条件和验证结果。其中过程从决定搜索起点和方向开始,然后根据不同的搜索策略进行子集搜索。特征子集产生后用评价准则计算特征的重要性,然后进行选择,满足停止准则条件后停止特征选择过程;最后再用错误估计或者一些验证方法来评价特征子集用于分类是否有效。

        (4)搜索策略①完全搜索:根据评价函数做完全搜索,主要有两种:穷举搜索和非穷举搜索;②启发式搜索:根据一些启发式规则在每次迭代时,决定剩下的特征是应该被选择还是被拒绝。这种方法很简单并且速度很快; ③随机搜索: 每次迭代时会设置一些参数(例如最大迭代次数),参数的选择会影响特征选择的效果。

        (5)停止条件用来决定迭代过程什么时候停止,生成过程和评价函数可能会对于怎么选择停止条件产生影响。停止条件有以下四种选择:①达到预定义的最大迭代次数;认同达到预定义的最大特征数;③增加(删除)任何特征不会产生更好的特征子集;④根据评价函数,产生最优特征子集;        

        (6)评价函数主要用来评价选出的特征子集的好坏,一个特征子集是最优的往往指相对于特定的评价函数来说的。评价函数主要用来度量一个特征(或者特征子集)可以区分不同类别的能力。

具体的特征选择方法主要有三类:过滤法(filter)、包裹法(wrapper)、嵌入法(embedding)

4、过滤法(filter):对每一维特征“打分”,即给每一维的特征赋予权重,这样的权重就代表着该特征的重要性,然后依据权重排序。先进行特征选择,然后去训练学习器,所以特征选择的过程与学习器无关。相当于先对特征进行过滤操作,然后用特征子集来训练分类器。适用于在需要遍历特征或升维的算法之前,对特征进行过滤。为了在维持算法表现的前提下,帮助算法降低计算成本。

        (1)方差过滤(Variance Threshold)是通过特征本身方差来筛选特征的类。比如一个特征本身的方差很小,就表示样本在这个特征上基本没有差异,可能特征中的大多数值都一样,甚至整个特征的取值都相同,那这个特征对于样本区分没有什么作用。方差过滤并不是适用于所有的算法,因为过滤之后模型可能变好也可能变性能下降。就需要针对数据集去进行尝试,也就是调参,选出最优的参数,画学习曲线就可以找到比较好的参数点。但是现实中一般不会花费太多时间在方差过滤的调参上,而是使用阈值为 0 或者阈值很小的方差进行过滤,消除一些明显用不到的特征然后选取其他的特征选择方法继续削减特征数量。

        (2)相关性过滤:一般情况下特征如果和标签的相关性比较大的话,这样的特征能够为我们提供大量的信息。如果特征与标签无关,只会白白浪费我们的算力,还可能给模型带来噪声。有三种常用的方法来评判特征和标签之间的相关性:卡方、F检验和互信息。

        ①卡方过滤是专门针对离散型标签(即分类问题)的相关性过滤。卡方检验类feature_selection.chi2计算每个非负特征和标签之间的卡方统计量,并依照卡方统计量由高到低为特征排名。再结合feature_selection.SelectKBest这个可以输入”评分标准“来选出前K个分数最高的特征的类,我们可以借此除去最可能独立于标签,与我们分类目的无关的特征。

        ②F检验,又称ANOVA,方差齐性检验,是用来捕捉每个特征与标签之间的线性关系的过滤方法。它即可以做回归也可以做分类,因此包含feature_selection.f_classif(F检验分类)和feature_selection.f_regression(F检验回归)两个类。其中F检验分类用于标签是离散型变量的数据,而F检验回归用于标签是连续型变量的数据。

        ③互信息法是用来捕捉每个特征与标签之间的任意关系(包括线性非线性关系)的过滤方法。和F检验相似,它既可以做回归也可以做分类,并且包含两个类feature_selection.mutual_info_classif(互信息分类)和feature_selection.mutual_info_regression(互信息回归)。这两个类的用法和参数都和F检验一模一样,不过互信息法比F检验更加强大,F检验只能够找出线性关系,而互信息法可以找出任意关系。

5、包裹法(wrapper)将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较。这样就将子集的选择看作是一个是一个优化问题,这里有很多的优化算法可以解决,尤其是一些启发式的优化算法,如GA,PSO,DE,ABC等。

        特点:①借助学习算法,通过选择出特征评价分类的准确性,来评判特征选择的好坏;②位计算的复杂度高;③一般看成选择最优的特征组合,借助一些常用的优化算法可以解决。

        Wrapper评价特征选择方法需要预先设定分类器学习模型,然后根据后续分类器的准确率对特征子集进行评价.这类方法与所使用的分类器的关系很大,它将子集的选择视为一个搜索寻优问题,不同的分类器会生成不同的子集组合,用分类器评选验证集中的子集,并进行排序组合的比较。

        Wrapper评价特征选择方法最后得到的特征子集的规模比 Filter特征选择结果小,而且准确率高,但它会枚举出所有可能的特征组合,而且每种组合都会被用于训练模型及测试集的验证,因此它的计算速度慢,特别是在数据维度很大时会显著地增加计算的时间,而且泛化能力弱,不适合大数据集。

6、嵌入法(embedding)在模型既定的情况下学习出对提高模型准确性最好的属性。即在确定模型的过程中,挑选出那些对模型的训练有重要意义的属性。嵌入法是一种算法自己决定使用哪些特征的方法,即特征选择和算法训练同时进行。嵌入法的结果会更加精确到模型的效用本身,对于提高模型效力有更好的效果。并且,由于考虑特征对模型的贡献,因此无关的特征(需要相关性过滤的特征)和无区分度的特征(需要方差过滤的特征)都会因为缺乏对模型的贡献而被删除掉,可谓是过滤法的进化版。

        针对不同的算法,模型的权值系数也会不同,所以不同模型的嵌入法使用起来也是不一样的。此外,由于嵌入法选取特征时是根据算法来决定的,也就是说特征选择的过程伴随着算法的训练过程,那么整个过程非常耗时耗力,这也是嵌入法的一个缺陷。

        代表方法:正则化 (L1 norm,L2 norm,L2-P norm),Ridge Regression(岭回归)线性回归,岭回归就是在基本线性回归的过程中加入了正则项。

7、神经网络的特征重要性主要以下几种方法。

        ①基于SHAP的方法,但该方法复杂度非常高,不推荐。SHAP(SHapley Additive exPlanations)一种来自于博弈论的方法,适合黑箱和非黑箱模型计算特征重要性。对于一些非线性的模型来说,特征与特征之间往往会相互作用,所以评价单个特征的重要性时需要要结合其他特征进行判断。

        比如ABCD四个特征,计算A特征的特征重要性时,它会计算AB、AC、AD、ABC、ABD和ABCD等特征组合的预测值(未在特征组合里的特征会被填充均值或进行其他操作);然后再计算不包含A特征的不同组合预测值,即会计算B、C、D、BC、BD和BCD等组合的预测值;最后整合多个边际效应来确定A特征的重要性。但SHAP有个缺点,其计算复杂度极高,其计算复杂度是关于特征数量的指数阶复杂度,即使简化版本的SHAP也有极高的计算复杂度。

        ②基于permutation的方法,该方法相对简单,且效果还不错。(Permutation Feature Importance, PFI)计算特征重要性较为简单,即打乱某一特征后,观察指标的变化情况,指标变化得越大表示该特征越重要。

        ③Boruta算法是一种基于随机森林的特征选择方法,用于在数据集中识别和选择重要的特征。核心思路就是将特征矩阵进行shuffle,接着将shuffle后的特征(shadow features)与原特征(real features)拼接构成新的特征矩阵,然后判断打乱后特征重要性和原特征重要性的差距,如果这个差距越大表示该特征越重要。

        优点是它不受数据类型(数值或类别)的限制,可以处理高维数据,并且不需要假设数据分布。它特别适用于那些难以通过传统统计方法确定特征重要性的情况。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mosh|初学者 SQL 教程

sql文件链接&#xff1a;链接: https://pan.baidu.com/s/1okjsgssdxMkfKf8FEos7DA?pwdf9a9 提取码: f9a9 在mysql workbench 导入 create_databases.sql 文件&#xff0c;下面是运行成功的界面 快捷方式&#xff1a;全部运行可以同时按下controlcommandenter &#xff0c;或者…

Linux学习之网络配置问题

Linux学习——那些我们网络配置遇到过的问题&#xff1f;ping不通百度&#xff1f;XShell连接不上&#xff1f;&#xff08;超详细&#xff09; &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感…

详细谈谈负载均衡的startupProbe探针、livenessProbe探针、readnessProbe探针如何使用以及使用差异化

文章目录 startupProbe探针startupProbe说明示例配置参数解释 使用场景说明实例——要求&#xff1a; 容器在8秒内完成启动&#xff0c;否则杀死对应容器工作流程说明timeoutSeconds: 和 periodSeconds: 参数顺序说明 livenessProbe探针livenessProbe说明示例配置参数解释 使用…

生产者消费者模型和线程同步问题

文章目录 线程同步概念生产者消费者模型条件变量使用条件变量唤醒条件变量 阻塞队列 线程同步概念 互斥能保证安全,但是仅有安全不够,同步可以更高效的使用资源 生产者消费者模型 下面就基于生产者消费者来深入线程同步等概念: 如何理解生产消费者模型: 以函数调用为例: 两…

LNMP搭建Discuz和Wordpress

1、LNMP L:linux操作系统 N&#xff1a;nginx展示前端页面web服务 M&#xff1a;mysql数据库&#xff0c;保存用户和密码&#xff0c;以及论坛相关的内容 P&#xff1a;php动态请求转发的中间件 数据库的作用&#xff1a; 登录时验证用户名和密码 创建用户和密码 发布和…

存储产品选型策略 OSS生命周期管理与运维

最近在看阿里云的 云存储通关实践认证训练营这个课程还是不错的。 存储产品选型策略、对象存储OSS入门、基于对象存储OSS快速搭建网盘、 如何做好权限控制、如何做好数据安全、如何做好数据管理、涉及对象存储OSS的权限控制、使用OSS完成静态网站托管、对OSS中存储的数据进行分…

ubuntu使用kubeadm搭建k8s集群

一、卸载k8s kubeadm reset -f modprobe -r ipip lsmod rm -rf ~/.kube/ rm -rf /etc/kubernetes/ rm -rf /etc/systemd/system/kubelet.service.d rm -rf /etc/systemd/system/kubelet.service rm -rf /usr/bin/kube* rm -rf /etc/cni rm -rf /opt/cni rm -rf /var/lib/etcd …

压缩感知2——算法模型

采集原理 其中Y就是压缩后的信号表示(M维)&#xff0c;Φ表示采集的测量矩阵&#xff0c;可以是一个随机矩阵&#xff0c;X代表原始的数字信号&#xff08;N维&#xff09;。 常见的测量矩阵——随机高斯矩阵 随机伯努利矩阵 稀疏随机矩阵等&#xff0c;矩阵需要满足与信号的稀…

57、基于概率神经网络(PNN)的分类(matlab)

1、基于概率神经网络(PNN)的分类简介 PNN&#xff08;Probabilistic Neural Network&#xff0c;概率神经网络&#xff09;是一种基于概率论的神经网络模型&#xff0c;主要用于解决分类问题。PNN最早由马科夫斯基和马西金在1993年提出&#xff0c;是一种非常有效的分类算法。…

OpenCV MEI相机模型(全向模型)

文章目录 一、简介二、实现代码三、实现效果参考文献一、简介 对于针孔相机模型,由于硬件上的限制(如进光量等),他的视野夹角往往有效区域只有140度左右,因此就有研究人员为每个针孔相机前面再添加一个镜片,如下所示: 通过折射的方式增加了相机成像的视野,虽然仍然达不…

精讲:java之多维数组的使用

一、多维数组简介 1.为什么需要二维数组 我们看下面这个例子&#xff1f;“ 某公司2022年全年各个月份的销售额进行登记。按月份存储&#xff0c;可以使用一维数组。如果改写为按季度为单位存储怎么办呢&#xff1f; 或许现在学习了一维数组的你只能申请四个一维数组去存储每…

修改服务器挂载目录

由于我们的项目通常需要挂载一个大容量的数据盘来存储文件数据&#xff0c;所以我们每台服务器都需要一个默认的挂载目录来存放这些数据&#xff0c;但是由于我们的误操作&#xff0c;导致挂载目录名字建错了&#xff0c;这时候后端就读不到挂载目录了&#xff0c;那我们我们的…

公司内部配置GitLab,通过SSH密钥来实现免密clone、push等操作

公司内部配置GitLab&#xff0c;通过SSH密钥来实现免密clone、push等操作。以下是配置SSH密钥以实现免密更新的步骤&#xff1a; 1.生成SSH密钥 在本地计算机上打开终端或命令提示符。输入以下命令以生成一个新的SSH密钥&#xff1a;ssh-keygen -t rsa -b 4096 -C "your…

AGE Cypher 查询格式

使用 ag_catalog 中的名为 cypher 的函数构建 Cypher 查询&#xff0c;该函数返回 Postgres 的记录集合。 Cypher() Cypher() 函数执行作为参数传递的 Cypher 查询。 语法&#xff1a;cypher(graph_name, query_string, parameters) 返回&#xff1a; A SETOF records 参…

高铁站客运枢纽IPTV电视系统-盐城高铁站西广场IP电视系统应用浅析

高铁站客运枢纽IPTV电视系统-盐城高铁站西广场IP电视系统应用浅析 由北京海特伟业科技有限公司任洪卓于2024年7月9日发布 随着科技的飞速发展&#xff0c;特别是“互联网”战略的深入推进&#xff0c;高铁站客运枢纽的信息化建设成为提升服务质量、增强乘客体验的重要手段。盐…

FTP与TFTP

1、TFTP&#xff08;简单文件传输协议&#xff09; TFTP是TCP/IP协议族中一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。 基于UDP协议 端口号&#xff1a;69 特点&#xff1a;简单、轻量级、易于实现 传输过程&…

20240710 每日AI必读资讯

&#x1f916;微软&#xff1a;不会像 OpenAI 一样阻止中国访问 AI 模型 - OpenAI 将于周二&#xff08;7 月 9 日&#xff09;开始阻止中国用户访问其 API。 - 微软发言人表示&#xff1a;Azure OpenAI API服务在中国的提供方式没有变化。 - 公司仍然通过部署在中国以外地区…

uniapp——银行卡号脱敏

样式 代码 {{bankNumber.replace(/(\d{4})(?\d)/g, "●●●● ").replace(/(\d{2})(?\d{2}$)/, " $1")}} 将银行卡号按照每四位一组的方式进行处理&#xff0c;前面的变成 剩下的正常显示

谷粒商城-个人笔记(集群部署篇三)

前言 ​学习视频&#xff1a;​Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强​学习文档&#xff1a; 谷粒商城-个人笔记(基础篇一)谷粒商城-个人笔记(基础篇二)谷粒商城-个人笔记(基础篇三)谷粒商城-个人笔记(高级篇一)谷粒商城-个…

昇思MindSpore25天学习打卡Day17:K近邻算法实现红酒聚类

昇思MindSpore25天学习打卡Day17&#xff1a;K近邻算法实现红酒聚类 1 实验目地2 K近邻算法(KNN)原理介绍2.1 分类问题2.2 回归问题2.3 距离的定义 3 实验环境4 数据处理4.1 数据准备4.2 数据读取与处理4.2.1 导入MindSpore模块和辅助模块 5 模型构建--计算距离6 模型预测 及 打…