特征选择 - Fisher Score

发布时间 2023-07-25 10:50:08作者: 半度墨水

特征选择的目的

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

  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)