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