Che*_*man 10 artificial-intelligence fitness genetic-algorithm evolutionary-algorithm
我正在开发一个项目,它将拥有一组选定的数据,每个数据都有不同的属性.我将需要使用适应度函数来使用属性选择与我选择的场景最匹配的数据.
但是,我并没有找到任何解释如何定义自己的健身功能的网站.我所拥有的只是它是遗传算法的一部分,而这就是我所得到的.那么,我可以在这里给出一些指示吗?
and*_*oke 16
这是GAs的难点(嗯,那和数据表示),实际上你只能通过经验来学习.
说明显而易见的是,该功能必须能够衡量结果的好坏程度.特别是,它必须能够在各种数据中保持平滑 - 无论数据如何,您的健身功能都必须显示正确的改进方法.
因此,例如,除非答案是正确的,否则为零的适应度函数是不好的,因为它在您启动时无法帮助您接近正确的答案.
随着事情变得越来越好而且不能确定最佳解决方案而增加的适应度函数也不是那么好,因为你的人口会改善到某一点然后被卡住.
因此,您需要坐下来,写出一些数据示例,然后考虑可以使用哪种功能.您需要的东西可以为坏数据提供低值,为高数据提供高值.这两者之间的调整很好.
尝试一下你能想到的任何疯狂的想法,然后看看你如何把它变成一个好的数学形式.只是头脑风暴,继续尝试和迭代...你可能会发现你的第一选择不是那么好,一旦你运行GA,你将能够更详细地看看发生了什么并改进它.
您确定您需要的实际上是健身功能吗?
正如你所说,适应度函数是遗传算法中使用的东西。它在算法的每次迭代中用于评估当前群体中针对您的问题提出的所有解决方案的质量。适应度函数评估总体中单个解决方案的好坏,例如,如果您尝试使用遗传算法查找函数的 x 值与 y 最小值,则单元的适应度函数可能只是负 y -value(值越小适应度函数越高)。
我基本上想说的是,适应度函数并不过多处理属性,只是评估结果。
如果您想选择包含属性的最具代表性的数据样本,也许您还应该研究分类或聚类方法?您没有提供太多信息以何种方式表示所选场景,但也许您可以对数据进行聚类(您可以尝试 k 均值聚类算法并尝试增加聚类数量,直到分类误差停止显着下降?)并且有了场景需求后,选择一个有代表性的数据集群?
如果您提供了有关如何相对于数据表示来表示查询的更多详细信息,您可能会从某人那里得到不同(或更好)的答案。
再说一次,如果你的唯一目标是学习遗传算法或人工智能/机器学习领域的任何其他部分,你应该完全按照 phs 的建议去做,寻找一本书、音频讲座、报名一个课程或类似的东西。