gpt4 book ai didi

genetic-algorithm - 遗传算法如何避免过拟合

转载 作者:行者123 更新时间:2023-12-04 08:57:46 27 4
gpt4 key购买 nike

我面临以下问题。
我有一个系统能够根据异常分数对某些操作进行排名。为了提高性能,我实现了一个遗传算法来执行特征选择,这样最异常的操作出现在第一个位置。我所做的并不是完全的特征选择,因为我没有使用二进制变量,而是使用 0-1 之间的浮点变量,总和等于 1。

目前,我有 50 代的 200 个人。我使用系统本身作为评估函数,并通过使用真阳性率评估解决方案的质量,计算前 N 个位置出现的异常操作数量(其中 N 是异常操作的数量)。然后作为运算符(operator)统一交叉,我改变个体细胞的值以进行突变。当然,每次我进行检查以修复个体时,总和为 1。最后,我使用精英主义来保存迄今为止最好的解决方案。

我观察到一个特征的值非常高,这通常很重要,但并非总是如此,这会导致其他特征的值非常低。我怀疑我的 GA 过拟合了。
你能帮我找到一个好的停止标准吗?

最佳答案

遗传算法和编程中的过度拟合是一个大问题,目前是 GP 社区的研究重点,包括我自己。大多数研究都针对分类/回归模型的遗传编程和进化,但它也可能与您的问题有关。有一些论文可能对您有所帮助(我也在使用这些论文):

  • 贡萨尔维斯、伊沃和萨拉席尔瓦。 “控制遗传编程中过度拟合的实验。”第 15 届葡萄牙人工智能 session 论文集:人工智能进展,EPIA。卷。 84. 2011.
  • Langdon, W. B. “最小化基因编程中的测试。” RN 11.10(2011 年):1。
  • 贡萨尔维斯、伊沃等人。 “用于遗传编程中过度拟合控制的随机采样技术。”遗传编程。施普林格柏林海德堡,2012。218-229。
  • 贡萨尔维斯、伊沃和萨拉席尔瓦。通过训练数据的交错采样平衡遗传编程中的学习和过度拟合。施普林格柏林海德堡,2013 年。

  • 您可以通过在scholar.google.com 中搜索它们的标题来找到这些论文(前两篇直接在pdf 中)。

    基本上,所有论文都使用的想法是只使用训练数据的一个子集来指导进化,并且每代(随机)改变这个子集(对一代中的所有个体使用相同的子集)。有趣的是,实验表明,这个子集越小,过拟合的发生就越少,直到只使用单元素子集的极端情况。这些论文采用了这个想法,并通过一些调整对其进行了扩展(例如在完整数据集和子集之间切换)。但正如我在开头所说的,所有这些都是针对符号回归(或多或少)而不是特征选择。

    我个人曾经尝试过另一种方法(再次通过遗传编程进行符号回归) - 使用训练数据的子集(例如一半)来插入进化(即适应度),但是“迄今为止最好的”解决方案是使用确定的剩余训练数据的结果。过拟合的影响要小得多。

    关于genetic-algorithm - 遗传算法如何避免过拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27764825/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com