基于遗传算法的特征选择是一种wrapper方法,该算法是以支持向量机分类器的识别率作为特征选择的可分性判断依据。在遗传算法中,对所选择的特征用[0,1]二进制串来初始化,由于二进制数{0,1}是等概率出现的,所以最优特征个数的期望是原始特征个数的一半。要进一步减少特征个数,则可以让二进制数{0,1}以不等概率出现,以a个特征中选择b个特征为例,使得在a位二进制串中1出现的概率为 b / a b/a b/a。
对于支持向量机和遗传算法,可以看先前的博客《线性支持向量机》和《遗传算法及其实现》。
改进的遗传算法
一个完整的遗传算法主要包括几个步骤:基因编码,种群初始化,选择操作,交叉操作,变异操作,结束条件判断等。
基因编码
将选择的特征组合用一个{0,1}二进制串表示,0表示不选择对应的特征,1表示选择对应的特征。对惩罚参数C和核参数 σ \sigma σ也采用二进制编码,根据范围和精度计算所需要的二进制串长度分别为 l c , l σ l_c,l_{\sigma} lc,lσ。
种群初始化
以a个特征中选取b个特征为例,确保在前a位二进制串中1出现的概率一定是 b / a b/a b/a,两个参数部分的二进制码随机生成,二进制长度为 l a + l c + l σ l_a+l_c+l_{\sigma} la+lc+lσ;然后以一定的种群规模进行种群初始化。
选择操作
计算个体适应度,即先对个体进行解码&