我有一个问题,我想用 matlab 遗传算法工具箱解决,但我不知道如何解决。我想以最大化函数的方式计算公式中的 3 系数,该函数是 SVM 分类模型的分类精度。系数的公式是 a*A+b*B+c*C 其中 a,b,c 是我想找到它们的优化值的系数,A,B,C 是数据集的 3 个属性的值. 我也有约束 a+b+c=1 和 a,b,c>0
我应该如何使用遗传算法来解决这个问题?
我有一个问题,我想用 matlab 遗传算法工具箱解决,但我不知道如何解决。我想以最大化函数的方式计算公式中的 3 系数,该函数是 SVM 分类模型的分类精度。系数的公式是 a*A+b*B+c*C 其中 a,b,c 是我想找到它们的优化值的系数,A,B,C 是数据集的 3 个属性的值. 我也有约束 a+b+c=1 和 a,b,c>0
我应该如何使用遗传算法来解决这个问题?
你首先需要随机生成一个初始可行解,作为第一代。
这些可行的解决方案中的每一个都应该满足a + b + c = 1
和a, b, c > 0
。
然后根据你的适应度函数,对每一个答案进行评估,选择更好的作为“父母”。对这些父母应用诸如“交叉”或“突变”之类的遗传算法技术,以产生一组后代,作为下一代。
重复这个过程一段时间,比如 500 代。
例如,您可以定义一个变量fitness
,值越大意味着其对应的候选者是更合适的解决方案。由于您正在最大化此功能,因此:
适应度 = a * A + b * B + c * C
在您的每个 GA 操作(交叉、变异等)中,请记住始终产生满足您的初始约束(a + b + c = 1
和a, b, c > 0
)的新候选者。
根据我的经验,最好的解决方案之一是实现 MATLAB 的 GA。生成 GA 工具箱是为了寻找此类函数的最小值,但通过使用对称性,它会导致您正在寻找的函数的最大化。按着这些次序:
如果有任何问题,请给我发电子邮件以获得更多帮助:mahdigh242@yahoo.com
希望最好的