【发布时间】:2018-07-20 18:51:07
【问题描述】:
我有以下问题 - 我有一个评估交易风险评分的规则引擎 (drools)。如果风险太高 (>200),则将其标记为不安全。每条规则都有其权重 (1-100),如果规则被执行,则分配给风险评分。
我想要一个优化权重的工具。于是我想到了遗传算法。
1.我会发送一批测试交易(带有额外的参数,告诉它们应该如何被标记 -> 是否不安全)给引擎让它评估它们
2. 我会检查触发了多少条规则(它将确定 基因型中的染色体),假设如果 5 被解雇,那么......
3....我将创建由 500 个基因型组成的第一个群体,每个基因型有 5 条染色体(染色体的基因值范围为 1-100)
4.我将针对人群中的所有基因型重复第一步
5.我会通过使用前面提到的附加参数来检查正确标记的交易百分比。
6.我会根据正确评估交易的百分比来分配每个基因型适应度函数
7. 重复循环数代,直到通过交叉、突变等达到解决方案(100% 事务被正确标记)。
这是我第一次尝试用遗传算法做任何事情,所以我首先要澄清的是
我对基因型/染色体/基因如何工作的理解。在不同的站点中,他们有时会使用这些术语作为彼此的替代品,这可能会令人困惑。我正在学习基于 jenetics 库的术语,因为我正在考虑将其用于实施。
后来我意识到我没有考虑一件事 - 我可能会演变规则权重的值,但权重并不是唯一重要的 - 将权重分配给哪个规则也很重要!但我不知道我应该把关于权重所指的规则的附加信息放在哪里……在染色体中的某个地方?这对我来说是最大的问题,我只是看不出它在哪里适合。
【问题讨论】:
-
这是一个关于编程的网站。你的问题似乎是关于生物学的。因此,我们无法在这里为您提供帮助。
-
什么时候遗传算法不是编程的一部分?
-
从什么时候开始“染色体是如何工作的?”编程的一部分?
-
这是从什么时候开始有问题的?
-
@JoeC:
chromosome在这里用于遗传算法的意义:一个对象发生变异、与另一个对象交叉等,以创建下一代模型。
标签: algorithm genetic-algorithm genetic-programming genetic