1 简介
特征提取广泛应用于模式识别,知识发现,机器学习等诸多领域,并受到了越来越多的关注犤1犦.对于一个给定的待分类模式,特征提取要求人们从大量的特征中选取一个最优特征子集,以代表被分类的模式.该文对特征提取这一组合优化及多目标优化问题提出了基于遗传算法的解决方法,把遗传算法作为识别或分类系统的"前端",找出代表问题空间的最优特征子集,以大大降低分类系统的搜索空间,从而提高搜索效率.
2 部分代码
%-------------------------------------------------------------------------%
% Genetic Algorithm (GA) source codes demo version %
% %
%---Input------------------------------------------------------------------
% feat: feature vector (instances x features)
% label: labelling
% N: Number of chromosomes
% T: Maximum number of generations
% CR: Crossover rate
% MR: Mutation rates
%*Note: k-value of KNN & hold-out setting can be modified in jFitnessFunction.m
%---Output-----------------------------------------------------------------
% sFeat: Selected features (instances x features)
% Sf: Selected feature index
% Nf: Number of selected features
% curve: Convergence curve
%--------------------------------------------------------------------------
%% Genetic Algorithm (version 1)
clc, clear, close
% Benchmark data set
load ionosphere.mat;
% Parameter setting
N=10; T=100; CR=0.8; MR=0.3;
% Genetic Algorithm
[sFeat,Sf,Nf,curve]=jGA1(feat,label,N,T,CR,MR);
% Plot convergence curve
figure(); plot(1:T,curve); xlabel('Number of generations');
ylabel('Fitness Value'); title('GA'); grid on;
%% Genetic Algorithm (version 2)
clc, clear, close
% Benchmark data set
load ionosphere.mat;
% Parameter setting
N=10; T=100; CR=0.6; MR=0.001;
% Genetic Algorithm
[sFeat,Sf,Nf,curve]=jGA2(feat,label,N,T,CR,MR);
% Plot convergence curve
figure(); plot(1:T,curve); xlabel('Number of generations');
ylabel('Fitness Value'); title('GA'); grid on;
3 仿真结果
4 参考文献
[1]赵云, and 刘惟一. "基于遗传算法的特征选择方法." 计算机工程与应用 40.15(2004):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。