rogeroyer
rogeroyer
我在看wide&deep实现的时候也存在这种情况,求官方解答一下。
明白了,就是把所有离散特征的id映射到一个字典,不同离散特征做好区分就好了,谢谢解答~
默认所有个体的适应度都是大于0的,所以self.bounds(所有个体适应度之和)也大于0。
请问你是每一个个体的auc都为1吗?你看一下每次选出来的特征子集是不是所有特征(不包含主键和标签)的子集呢?
请问你的特征维数一共是多少呢?我刚开始测试的时候用10维左右就可能出现子代基因全为0的情况,因为经过交叉和变异是可能出现这种情况的。但是我写这个算法的初衷就是针对特征维数比较高的情况,一般50维以上,如果维数比较低其实就没多大必要做特征选择了或者直接使用蛮力搜索效果可能会更好,时间也可以接受。
我修改了几行代码,你重新下载使用下看行不行,提醒一下就是self.columns那里第一个元素是标签的名称,如果你数据集里面不是target就把它命名为target,其它元素全是特征名称。
谢谢你的提议哈,我用的终止条件是迭代次数,当迭代次数达到设定的阈值程序就自动结束了。 ``` def main(): fs = FeatureSelection(aLifeCount=20) rounds = 100 # 算法迭代次数 # fs.run(rounds) ``` 之所以采用迭代次数是因为相邻两代之间最优个体适应度可能是一样的,所以就没用相邻两代之间最优个体适应度的差来作为终止条件。lifecount是每一代里面的个体数。 ``` def initPopulation(self): """初始化种群""" self.lives = [] count = 0 while count < self.lifeCount:...
不敢当,相互学习
> 你好,这个能用于多分类中,进行特征选择吗? 可以的,但需要修改下模型和评价函数的代码
> 您好,我的AUC值一直是0.5您知道为什么吗? > 我是把特征名字全都改成了英文而已,完全用的例子的数据集,有朋友直到为什么么,谢谢 你只改了数据表中的特征名字吗?Feature_selection_genetic_algorithm.py中的self.columns改了没?