algorithm - 逆概率选择(进化算法的逆适应度选择)

标签 algorithm probability genetic-algorithm

我需要从一组数据中概率性地选择一个样本。

假设我有一组值 array[12, 15, 29, 17, 12, 29]。标准方法是计算总数 (12 + 15 + 29 + 17 + 12 + 29),然后创建一个有利于较高值的微调器。有点像饼图,我们从样本集中随机选择,但偏爱具有最高值的个体。

以上数字为例,您随机选择 array[0] 的几率是 11%,而 array[5] 的几率是 25%。没关系

虽然我想做的是支持较低的数字,但凭借我所有的头脑 Storm 能力,我无法想出一种方法来为较低的数字提供统计上相等的选择概率,就好像我们要选择较大的数字一样。

我解决这个问题的一种方法是添加 array[] 然后从总数中减去每个值得到一个 array2[102, 99, 85, 102, 85] 然后重新计算 array2[]. 的百分比给 array[0] 一个 21%。此解决方案的问题在于,array[1] 中具有接近统计选择概率的元素具有相差很大的选择百分比。

我们还尝试将最低和最高百分比值与下一个最高百分比值交换,但这会给您带来与我们第一次尝试相同的问题。

我觉得必须有一个简单的方法来做到这一点。

注意:如果您熟悉进化/遗传计算,我们将尝试根据适应度比例进行 parent 选择。然而,我们的适应度值是相反的(越低越好)。那么如果适应度越低越好,我们如何为 parent 做适应度比例选择呢?

最佳答案

你为什么不使用逆函数?在您的示例中,概率的基本数组将是 array[1.0/12, 1.0/15, 1.0/29, 1.0/17, 1.0/12, 1.0/29],其余的将保留一样。

关于algorithm - 逆概率选择(进化算法的逆适应度选择),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4394724/

相关文章:

python - 如何使用 Python nltk 的 ProbDistI 类

python - 如何确定单词的概率?

machine-learning - 我们如何在遗传编程中实现循环结构?

python - 根据给定的概率有效地变异二进制字符串中的字符

c# - 一种总结内容的算法

python - 如何使用空格来适应字符串,最小化编辑距离?

algorithm - 模拟退火 - 传感器网络中的传感器定位

python - 高效计算斐波那契数列

Java Random.nextDouble() 概率

algorithm - TreeMap - 查找有多少对顶点,它们之间的路径上的边总和为 C