如何在数据集特征中变异遗传算法

问题描述

在现实世界的特征选择中,遗传算法如何工作?

在这种情况下,突变是如何发生的?

例如,如果我有一个预测贷款批准的数据集

数据集看起来像这样

年龄,工资,贷款金额,财产价值,汽车价值,孩子,费用...。批准

Age Salary Loan Amount Property Value Car Value Kids Expenses.... Approve
47  3500   100,000     250,000        20,000    2    1600         1
34  2200   700,000     130,000        10,000    0    1800         0
38  3200   400,000     150,000        25,000    3    2300         1
42  4500   500,000     200,000        60,000    1    3000         1
55  3000   600,000     100,000        37,000    3    2300         0

如果我们从父母开始

父母1:年龄,工资,汽车价值,孩子 父母2:年龄,贷款金额,汽车价值,费用

后代:年龄,工资,汽车价值,费用

变异那个后代

该新功能应为其父项之一,也可以是数据集中的任何功能

这是正确的变异吗?:年龄,财产价值,汽车价值,费用

要拥有财产价值而不是工资?

解决方法

遗传算法是一类进化算法,可以通过组合成员的内部表示(它们的基因型)来进行成员的繁殖和交叉。

对于在GA中进行突变的方法,没有通用的规则,它取决于特定的算法。但是,让我们在最通用的GA规范/规则的假设下回答您的问题:

您正确越过了父母。通常在交配过程中,后代没有父母也没有的特征。哪个父母性状被复制到后代通常是随机的,因此您的后代是有效的。

在突变过程中,通常会在真空中查看成员-这意味着该成员是通过mutation_x,mutation_y还是crossover创建的都没有关系。现在对成员应用mutation_x,mutation_y或crossover的概率与总体中其他成员的概率相同。

因此可以选择'mutation_add_property_value',并且(假设您的基因组大小固定,因为每个成员只有4个特征),可以替换诸如薪水之类的随机特征。因此,您对(Age,Property_Value,Car_Value,Expenses)的突变是假定的一般GA中的有效突变。