首页 > 技术文章 > 用模拟退火算法进行特征选择

holaworld 2020-04-04 15:07 原文

曾经的我只知道,这台电脑缺一个好的显卡;现在的我还知道,原来这台电脑还缺一个好的CPU。
——作者

模拟退火算法介绍

源码

一、算法

1.生成初始随机解x

一个解x大概长这样:[0,1,1,0,0,1,0,1,1,0,1]
1表示选择这个特征,0表示不选择这个特征
解的长度为特征的个数
初始化时0和1随机选,生成一个随机解

2.解对应的能量

E = 适应度 = 交叉验证cross_val_score(解,y)的结果

3.生成新解

随机选择一个点取反
0变成1,1变成0

二、效果

没有进行特征选择时,交叉验证的得分是0.6257839721254356

用模拟退火算法进行特征选择:

三、逼逼几句

这个空间复杂度没有遗传算法那么高,因为一次只有一个解,不像遗传算法一次一个种群,好几个染色体
但是时间复杂度也是好好好好高,运行的时候风扇呼呼转,电量哗哗掉
更多:用遗传算法进行特征选择

推荐阅读