NSGA2算法特征选择MATLAB实现(多目标)

本文共472个字,预计阅读时间需要2分钟。

利用nsga2进行进行特征选择其主要思想是:将子集的选择看作是一个搜索寻优问题(wrapper方法),生成不同的组合,对组合进行评价,再与其他的组合进行比较。这样就将子集的选择看作是一个是一个优化问题。

需要优化的两个目标为特征数和精度。

nsga2是一个多目标优化算法。

具体的nsga2通用算法请看:http://www.omegaxyz.com/2018/01/22/new_nsga2/

具体的特征选择代码在上述代码的基础上改了两个①主函数②评价函数,增加了一个数据分成训练集和测试集的函数:

MATLAB代码主函数:

评价函数(利用林志仁SVM进行训练):

选的的数据集请从UCI上下载。

结果:

①pareto面

最后粒子的数据(选出的特征数和精确度)

PSO单目标特征选择请见:http://www.omegaxyz.com/2018/01/21/psofs/

读者评分
[评分人数: 1 平均分: 5]

5 位极客在 “NSGA2算法特征选择MATLAB实现(多目标)” 留下足迹

  1. 评价函数中function f = evaluate_objective(x, M, V, i)的是输入的什么啊?因为在上个NSGA2代码里面,评价函数是function f = evaluate_objective(x, M, V),这里没有i,所以我有点不明白,还望老师指导一下,谢谢!!

评论