用R语言实现遗传算法

Python018

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

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

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

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

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

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

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

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

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

适应度函数的实现

示例

结果如下

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

用r语言实现对6个样品19,21,25,8,11,13的k均值法聚类用kmeans函数即可:

a=c(19,21,25,8,11,13)kmeans(a,2)

k=2的分类效果

其中输出结果为,19,21,25为类别1,均值为21.66667;8,11,13则为类别2均值为10.66667

因为数据只有一维,再加点可视化:

红点类均值,黑点样本值,横坐标类别

a=c(19,21,25,8,11,13)

km=kmeans(a,2)

plot(km$cluster,a)

lines(km$cluster,km$centers[km$cluster],col='red',type='p')