原文:http://www.omegaxyz.com/2018/09/16/vlpso/
简介
文章图片
原文:Variable-Length particle swarm optimisation for feature selection on high-dimensional classification
VLPSO是Binh Tran和Bing Xue等人发在人工智能顶尖杂志上IEEE Transactions on Evolutionary Computation 上的一篇解决高维特征选择的PSO算法。
它能够很好地解决高维特征选择问题,尤其是在计算时间上能够大幅度减少。
问题提出
①高维特征选择,占内存
②高维特征选择,耗时
VLPSO(变长PSO)主要贡献
①变长单目标PSO表示方法的提出
②改编的粒子维度值交互学习方式,借鉴的CLPSO
粒子的表示
文章图片
Exemplar:当前个体的每个维度需要学习的粒子的index
Learning Probability:学习率,达到阈值则学习Exemplar值,否则学习自身的pbest
Renew Exemplar Count: 对Exemplar的重置代数
注意这里借鉴的是CLPSO方法:唯一的不同是Pc的计算方法
例如Exemplar那一行的6表示当前粒子的第4个维度更新时需要学习第6个个体的第4个维度。
Exemplar的生成
对每个个体的每个维度的Exemplar采取如下操作
计算学习率Pc
如果Pc的值小于随机数,则当前维度的Exemplar为自身粒子的index
否则
随机选择两个粒子,fitness值较大粒子的index作为当前维度的Exemplar
学习率Pc的计算方式
0.05与0.45是CLPSO中提出的经验值
Rank(i)是粒子的排序,它通过信息论的对称不确定性计算
学习率越大,学习自身粒子的可能性就越大
种群长度划分
文章图片
PopSize=100,NbrDiv是一个预设的值,令其等于5,则种群被分为5组,每组20个个体。
种群维度划分
文章图片
假设有5000维,NbrDiv=5,则种群每一层的长度如下所示:
文章图片
注意:从粒子后端除去维度,比如1000维的除去后面4000个维度
进化中种群维度的改变
触发机制:几代过后gBest没有提升
过程:计算每个层次(不同长度)的粒子适应度的均值,寻找最好的Best Division,保持该层次的长度不变,作为最大长度重新划分其它层次的个体
注意:长度变小的层次的粒子是去除的末尾的维度,长度变长的粒子增加相应的维度,这些维度的值随机生成。
流程图
文章图片
①初始化不同长度的种群,初始化Exemplar
②对每个粒子判断是否需要重置Exemplar
③速度与位置更新,如果pbest在α代后没有更新,则更新学习率Pc下一代需要重置Exemplar
④更新gbest
⑤如果gbset在β代后没有提升,则种群长度重置
⑥停止准则,否进入第三步
适应度函数Fitness,精确度利用KNN计算
文章图片
注意:使用实例被选择的特征子集来计算曼哈顿距离,其中距离的度量可以判断特征子集划分不同类别实例与聚合相同类别实例的能力。
实验使用的数据集
文章图片
实验结果请查看原文
论文原文:Tran B, Xue B, Zhang M. Variable-Length Particle Swarm Optimisation for Feature Selection on High-Dimensional Classification[J]. IEEE Transactions on Evolutionary Computation, 2018.
【机器学习|基于变长PSO的高维特征选择算法(VLPSO)概述】更多内容访问omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
? 2018-2020 ? OmegaXYZ-版权所有 转载请注明出处
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现