用R语言实现遗传算法

Python018

用R语言实现遗传算法,第1张

模式识别的三大核心问题包括:

特征选择 特征变换 都能够达到降维的目的,但是两者所采用的方式方法是不同的。

特征提取 主要是通过分析特征间的关系,变换原来特征空间,从而达到压缩特征的目的。主要方法有:主成分分析(PCA)、离散K-L变换法(DKLT)等。

特征选择 选择方法是从原始特征集中挑选出子集,是原始特征的选择和组合,并没有更改原始特征空间,特征选择的过程必须确保不丢失重要特征。主要方法有:遗传算法(GA)、统计检验法、分支定界法等。

这里主要讲讲特征选择中 遗传算法 以及它的R语言实现(因为要写作业,虽然不一定写对了)。

遗传算法受进化论启发,根据“物竞天择,适者生存”这一规则,模拟自然界进化机制,寻找目标函数的最大值。

采用遗传算法对男女生样本数据中的身高、体重、鞋码、50m成绩、肺活量、是否喜欢运动共6个特征进行特征选择。

由于有6个特征,因此选用6位0/1进行编码,1表示选中该特征。

适应度函数的实现

示例

结果如下

有什么不对的地方欢迎大家在评论区指出。

把time转换成因子了,也就是分类变量,所以ggplot不知道这是什么鬼,没法把数据组合成折线图。加上group为1就是分类为一组,画出一条折线,假如你有男女性别分类sex的话,比如说group=sex,就会画出两条折线。

一种方式是把表格数据整理到Excel,并保存为csv格式,然后采用read.csv()函数读入R中,这样就是数据框data.frame格式了,至于图形,基本上你用Excel能做的图都能在R里面实现,比如就男女比例画一个饼图,就年龄、体重、身高就可以直接绘制以人名为横坐标的散点图或者折线图。