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

How to mutate Genetic Algotithm in dataset features

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

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

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

数据集看起来像这样

年龄、薪水、贷款金额、属性 价值、汽车价值、孩子、费用....批准

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

如果我们从 parent

开始

Parent 1 : 年龄、薪水、汽车价值、孩子 Parent 2 : 年龄、贷款金额、汽车价值、费用

后代:年龄、薪水、汽车价值、开支

使后代变异

新特征应该是其 parent 之一,还是可以是数据集中的任何特征

这个突变是否正确:年龄,属性 价值,汽车价值,开支

要拥有 属性 价值而不是薪水?

遗传算法是一种 class 进化算法,允许通过组合成员的内部表示(他们的 基因型 )来繁殖和交叉成员。

变异在 GA 中的工作原理没有通用规则,它取决于特定的算法。但是,让我们在最常见的 GA specifications/rules:

假设下回答你的问题

您 parents 的交叉正确。通常在交叉过程中,后代没有任何特征也没有出现在其 parents 中。 parents 哪些特征被复制到后代通常是随机的,因此您的后代是有效的。

在突变过程中,通常会在真空中查看成员 - 这意味着该成员是通过 mutation_x、mutation_y 还是交叉创建的并不重要。 mutation_x、mutation_y 或交叉现在应用于成员的概率与总体中任何其他成员的概率相同。

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