遗传算法:健身功能不正常

时间:2013-05-17 16:20:38

标签: neural-network genetic-algorithm fitness

我有一个(m×n)m个实例的二进制数据集和n个具有m>>的特征。 ñ。并且有一个目标变量或类属性,也是二进制。我想用遗传算法进行特征选择。我决定在GA中使用0/1字符串,如果未选择要素,则为0,如果选择了要素,则为1。我生成了一组随机的K组位串。因此,这些位串中的每个K表示可能的特征选择。为了开发适应度函数,我使用这些K个特征集(模型)训练神经网络,然后基于单独验证集的准确性,我为每个模型创建了这个适应度函数: -

fitness=tradeoffk*Valacc+(1-tradeoffk)*(ones(no_of_models,1)*n-featSel)/maxFeat;

此适应度函数就像是为训练传递的特征数量(featSel)和报告神经网络的验证准确性之间的权衡。我为tradeoffk设置了不同的值,如0.5,0.2和0.8。

我跑了10次GA。每次迭代都进行了20次进行,并尝试检查适应度函数的增长方式。但是,适应度函数没有显着变化。在GA中,通常预期适应度函数会增长然后稳定,但此处它的增长非常小。

例如,这是其中一次迭代的示例输出: -

gen=001  avgFitness=0.808   maxFitness=0.918
gen=002  avgFitness=0.808   maxFitness=0.918
gen=003  avgFitness=0.815   maxFitness=0.918
gen=004  avgFitness=0.815   maxFitness=0.918
gen=005  avgFitness=0.817   maxFitness=0.918
gen=006  avgFitness=0.818   maxFitness=0.918
gen=007  avgFitness=0.818   maxFitness=0.918
gen=008  avgFitness=0.819   maxFitness=0.918
gen=009  avgFitness=0.819   maxFitness=0.918
gen=010  avgFitness=0.819   maxFitness=0.918
gen=011  avgFitness=0.819   maxFitness=0.918
gen=012  avgFitness=0.819   maxFitness=0.918
gen=013  avgFitness=0.819   maxFitness=0.918
gen=014  avgFitness=0.819   maxFitness=0.918
gen=015  avgFitness=0.819   maxFitness=0.918
gen=016  avgFitness=0.819   maxFitness=0.918
gen=017  avgFitness=0.819   maxFitness=0.918

此外,神经网络需要花费大量时间进行训练(20小时后> 2小时) 谁能提出进一步的建议,哪里可能出错?!

1 个答案:

答案 0 :(得分:0)

您可以使用linear-discriminant analysis (LDA)作为验证模型而不是神经网络。训练要快得多,但当然不能代表非线性关系。你试过genetic programming吗?它内置了功能选择,因为它尝试构建模型并同时选择功能。你可以给HeuristicLab一个尝试,它有一个非常强大的遗传编程实现,也包括分类。