当前位置: 首页 > news >正文

2024年KBS SCI1区TOP:信息增益比子特征分组赋能粒子群算法ISPSO,深度解析+性能实测

目录

    • 1.摘要
    • 2.信息度量
    • 3.改进策略
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取


1.摘要

特征选择是机器学习中的关键预处理步骤,广泛应用于实际问题。尽管粒子群算法(PSO)因其强大的全局搜索能力被广泛用于特征选择,但要开发一种高效的PSO方法仍然面临不小的挑战。本文提出了信息增益比子特征分组赋能粒子群算法ISPSO,该方法通过引入信息增益比来评估特征的重要性,从而提升特征选择的效果。在ISPSO的特征选择过程中,首先将特征划分为不同的组,以构建初始种群。鉴于特征选择任务本质上是二元问题,ISPSO采用了基于概率的方法代替传统的PSO速度概念。

2.信息度量

信息熵
信息熵是信息论中的一个概念,用来度量信息的不确定性或无序性。信息熵的基本思想是不确定信息越多,熵就越高,确定信息越多,熵就越低。
H ( D ) = − ∑ p i ⋅ l o g ( p i ) H(D)=-\sum p_i\cdot log(p_i) H(D)=pilog(pi)

信息增益

信息增益是一种广泛使用的特征选择标准,它衡量当使用特定特征进行数据分区时数据集总体信息熵的减少。一个特征的高信息增益意味着在数据分割过程中不确定性的显著减少,突出了它的重要性。
G I ( D , X ) = H ( D ) − H ( D ∣ X ) G_{I}(D,X)=H(D)-H(D|X) GI(D,X)=H(D)H(DX)
H ( D ∣ X ) = ∑ p ( X = x i ) ⋅ H ( D ∣ X = x i ) H(D|X)=\sum p(X=x_i)\cdot H(D|X=x_i) H(DX)=p(X=xi)H(DX=xi)

信息增益比
信息增益比作为信息增益的扩展,考虑了信息增益与内在信息之间的关系。
R ( D , X ) = G I ( D , X ) I ( X ) R(D,X)=\frac{G_I(D,X)}{I(X)} R(D,X)=I(X)GI(D,X)
I ( X ) = − ∑ p ( x i ) ⋅ l o g ( p ( x i ) ) I(X)=-\sum p(x_i)\cdot log(p(x_i)) I(X)=p(xi)log(p(xi))

3.改进策略

通过将信息增益比与粒子群算法(PSO)相结合,本文提出了ISPSO算法。在ISPSO的初始阶段,特征根据信息增益比值被分为三组。在初始化过程中,每个种群成员会随机选择一个子特征组,并对该组中的特征进行个性化初始化。在ISPSO中,“速度”被“概率”所替代,从而重新定义了更新公式。此外,每个特征都被引入了一个惩罚项,以影响特征的选择或取消选择。

子特性分组和初始化

在ISPSO中,特征评估采用信息增益比作为衡量特征重要性的指标,较高的值表示特征的重要性更大。该过程首先计算每个特征的信息增益比,并根据这些值对特征进行排序,从而生成特征列表。根据信息增益比值的排序,排名前30%的特征被分配到一个子特征组,排名后30%的特征分配到另一个子特征组,剩余的特征则被分入第三个子特征组。
对于每个个体,初始化方程表示为:
S i , j = { rand < R ( D , j ) , j ∈ F k rand < 0.5 , otherwise S_{i,j} = \begin{cases} \text{rand} < R(D,j), & j \in F_k \\ \text{rand} < 0.5, & \text{otherwise} \end{cases} Si,j={rand<R(D,j),rand<0.5,jFkotherwise

搜索算子

在二元任务中,传统PSO通过速度更新位置的方法不再适用。因此,ISPSO 与 BPSO 区别开来,通过用概率替代速度,同时保留了 P b e s t P_{best} Pbest G b e s t G_{best} Gbest的概念:
p i , j t + 1 = w ⋅ i , j t + r 1 ⋅ ( 1 − R j ) ⋅ ( P b e s t − s i , j t ) + r 2 ⋅ R j ⋅ ( G b e s t − s i , j t ) − r 3 ⋅ ( D r − s i , j t ) p_{i,j}^{t+1}=w\cdotp_{i,j}^t+r_1\cdot(1-R_j)\cdot(P_{best}-s_{i,j}^t)+r_2\cdot R_j\cdot(G_{best}-s_{i,j}^t)-r_3\cdot(D_r-s_{i,j}^t) pi,jt+1=wi,jt+r1(1Rj)(Pbestsi,jt)+r2Rj(Gbestsi,jt)r3(Drsi,jt)
s i , j t + 1 = { 1 − s i , j t p i , j t + 1 ≥ r a n d s i , j t o t h e r w i s e s_{i,j}^{t+1}= \begin{cases} 1-s_{i,j}^t & p_{i,j}^{t+1}\geq rand \\ s_{i,j}^t & \mathrm{otherwise} & \end{cases} si,jt+1={1si,jtsi,jtpi,jt+1randotherwise

惩罚项

为了增强算法的搜索能力,ISPSO 为每个特征引入了惩罚项。在每次迭代开始时,每个特征的惩罚项值被初始化为 10。随着迭代的进行,如果新个体的适应度超过了相应原始个体的适应度,惩罚项会根据特定的公式进行更新,从而进一步优化搜索过程。
P T j = P T j − 5 ⋅ R j ⋅ ( s j − N j ) PT_j=PT_j-5\cdot R_j\cdot(s_j-N_j) PTj=PTj5Rj(sjNj)

伪代码

流程图

4.结果展示

5.参考文献

[1] Gao J, Wang Z, Jin T, et al. Information gain ratio-based subfeature grouping empowers particle swarm optimization for feature selection[J]. Knowledge-Based Systems, 2024, 286: 111380.

6.代码获取

相关文章:

  • MySQL InnoDB设计图鉴——核心组件讲解
  • Elasticsearch-新增数据时自动生成 @timestamp 时间字段
  • 使用 3D Layout 和 Icepak 进行 PCB、DCIR 和热分析
  • 如何预估一个系统的QPS
  • TIM输出比较--PWM
  • Android性能案例分析
  • Spring Cloud 通用相关组件详解
  • 详解 kotlin 相对 Java 特有的关键字及使用
  • 《算法笔记》3.1小节——入门模拟->简单模拟
  • C#: DxF文件中Spline解析
  • 【前缀和】矩阵区域和(medium)
  • 支付系统设计入门:核心账户体系架构
  • C++ 入门三:函数与模板
  • windows主机中构建适用于K8S Operator开发环境
  • 【软考-高级】【信息系统项目管理师】【论文基础】进度管理过程输入输出及工具技术的使用方法
  • 编程语言中变量定义方式的深度剖析
  • 简化DB操作:Golang 通用仓库模式
  • 【家政平台开发(33)】库存管理模块开发实战:从基础搭建到智能管控
  • 简单实现逆波兰表达式求值
  • C++_智能指针