首页 > 其他分享 >特征选择 - Fisher Score

特征选择 - Fisher Score

时间:2023-07-25 10:56:48浏览次数:32  
标签:方差 特征选择 模型 特征 Score Fisher

特征选择的目的

在理想情况下,特征选择想要达到以下效果:

  1. 简化模型以提高可解释性:通过减少特征的数量,模型变得更简单,更容易理解。这对于那些需要理解模型如何做出预测的领域(如医疗或信贷评分)非常重要。

  2. 改进模型性能:通过消除无关或冗余的特征,模型的预测性能可能会得到提高。这是因为无关或冗余的特征可能会引入噪音或引起模型过拟合。

  3. 减少训练时间:训练模型时,特征的数量越多,所需的计算资源和时间就越多。通过选择最重要的特征,可以显著减少模型训练所需的时间和计算资源。

  4. 降低过拟合风险:过拟合是指模型在训练数据上表现很好,但在新的未知数据上表现差。过多的特征可能导致模型过度复杂,并且更容易过拟合。通过特征选择,可以减少特征的数量,从而降低模型过拟合的风险。

  5. 增强数据的理解:通过特征选择,我们可以找出那些对目标变量影响最大的特征,这有助于我们更好地理解数据和预测问题。

基本思想

本文的方法【Fisher Score】属于过滤式选择,它的基本思想是选择那些在不同类别之间的平均值差异大,而在同一类别内的值差异小的特征。这样的特征具有更好的区分能力,因此在分类/聚类任务中更有价值。

公式

Fisher Score 通过计算特征的类间方差和类内方差的比值来为每个特征打分。类间方差反映了不同类别之间的差异,类内方差反映了同一类别内部的差异。如果一个特征的类间方差大且类内方差小,那么这个特征的Fisher Score 就高,“这意味着它是一个好的特征。”

 k是正在计算分数的特征,SB 代表类间差异,SW表示类内差异。


 

 对于类间差异来说,我们期待第k个特征带来的效果是使得差异大、分数高的方向

 对公式的分析如下:


 

 对于类内差异来说,我们期待第k个特征使得同一类的样本差异向越小,值低(作分母)的趋势

 

 公式直觉分析如下:


 

 总结

 重复以上过程,直到每一个特征都有一个分数,将特征按照分数降序排列,取前x个特征作为特征输入,这样对单独某个特征来看,前x个是最有效的特征。

  1. 假设数据分布:Fisher Score在计算过程中假设数据是高斯分布的,即每个特征的值都服从正态分布。如果实际数据分布与此假设相差较大,Fisher Score的效果可能会受到影响。

  2. 二类问题:Fisher Score主要用于二分类问题。对于多分类问题,需要做一些调整,如计算每一对类别之间的Fisher Score然后求平均等。

  3. 无法处理特征间的关联:Fisher Score是一种单变量特征选择方法,它独立地对每个特征进行评分。这意味着它无法捕捉到特征间可能存在的交互或关联。如果某些特征组合起来才能提供有用的信息,Fisher Score可能无法识别出来。

  4. 对异常值敏感:由于Fisher Score基于特征值的平均值和方差进行计算,因此可能会受到异常值的影响。

  5. 不适用于连续和分类混合的数据类型:Fisher Score主要用于连续特征和分类目标变量。对于连续和分类混合的数据类型,可能需要对数据进行预处理或选择其他类型的特征选择方法。

 

参考来源:https://blog.csdn.net/qq_39923466/article/details/118809782(计算过程举例+code)

标签:方差,特征选择,模型,特征,Score,Fisher
From: https://www.cnblogs.com/HOI-Yzy/p/17578558.html

相关文章

  • redis set score
    RedisSetScore:AnIntroductionRedisisanopen-sourcein-memorydatastructurestorethatisusedasadatabase,cache,andmessagebroker.Itsupportsvariousdatastructures,includingstrings,lists,sets,sortedsets,andhashes.Inthisarticle,w......
  • MySQL把choose表中的report改名为score,数据类型改为float; 将choose表的score默
    MySQL把choose表中的report改名为score,数据类型改为float;将choose表的score默认值设为0流程步骤步骤操作1.连接至MySQL数据库2.切换至对应数据库3.修改表结构,将report改名为score并更改数据类型4.设定score字段的默认值为0具体步骤与代码示例步骤......
  • [LeetCode] 2542. Maximum Subsequence Score
    Youaregiventwo 0-indexed integerarrays nums1 and nums2 ofequallength n andapositiveinteger k.Youmustchoosea subsequence ofindicesfrom nums1 oflength k.Forchosenindices i0, i1,..., ik-1,your score isdefinedas:Thes......
  • 四格表fisher检验
    一、案例介绍某医生用新旧两种药物治疗某病患者27人,治疗结果见下表,现在想知道两种两种药物的治疗效果有无差别?二、问题分析本案例的分析目的是探究两种治疗效果有无差异,总样本量为27<40,所以考虑使用四格表Fisher确切检验法进行分析,但是需要满足2个条件:条件1:分组变量和观察变......
  • Codeforces 1787H - Codeforces Scoreboard(平衡树优化 dp)
    令\(c_i=b_i-a_i\),等价于我们钦定一个排列\(p\),最小化\(\sum\min(p_ik_i,c_i)\),拿\(\sumb_i\)减去之就是答案。我们钦定一些\(i\)满足\(p_ik_i<c_i\),根据排序不等式,这些\(p_i\)肯定按\(k\)从大到小的顺序依次填入\(1,2,3,\cdots\)。这样就可以DP了:将\(k\)从大......
  • RookScore
    [ABC298F]RookScore关键在于如何排除交叉位置计算两次的干扰。首先进行离散化,行和列是独立的,所以可以分别对行和列离散化。考虑到可以枚举每一行,而每次覆盖到的点可以在线段树中减去这一行的点,然后查询答案;最后再修改回去。也可以直接用一个set,然后搞一个数组存储现在的情......
  • 终端运行roscore时,报错:Unable to contact my own server at...
    问题现象:问题原因:以上问题是由于ROS环境变量ROS_MASTER_URI设置错误导致的,重新设置该变量即可。解决方法:打开~/.bashrc文件,添加或修改环境变量ROS_HOSTNAME和ROS_MASTER,即改为:exportROS_HOSTNAME=localhostexportROS_MASTER_URI=http://localhost:11311修改并保存~/.......
  • 2023-06-18:给定一个长度为N的一维数组scores, 代表0~N-1号员工的初始得分, scores[i] =
    2023-06-18:给定一个长度为N的一维数组scores,代表0~N-1号员工的初始得分,scores[i]=a,表示i号员工一开始得分是a,给定一个长度为M的二维数组operations,operations[i]={a,b,c}。表示第i号操作为:如果a==1,表示将目前分数<b的所有员工,分数改成b,c这个值无用,如果a==2,表示将......
  • 【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】
    【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】 在iOS中,图形可分为以下几个层次: 越上层,封装程度越高,动画实现越简洁越简单,但是自由度越低;反之亦然。本文着重介绍CoreAnimation层的基本动画实现方案。在iOS中,展示动画可以类比于显示生活中的“拍电影”。拍电影有......
  • 推导&实现:感知器准则&MSE算法&Fisher准则
    推导&实现:感知器准则&MSE算法&Fisher准则1感知器准则1.1推导​ 第二个类别的样本特征向量\(\times-1\),再给所有样本增加一维表示label,第一类label等于\(1\),第二类label等于\(-1\)​ 感知器算法采用最直观的准则,即最小错分样本数,(MSE的区别在于迭代更新\(a\)......