2010-12-09 59 views
0

我需要概率性地从一组数据中选择一个样本。如果我有一组值array[12, 15, 29, 17, 12, 29]。标准方法是计算总数(12 + 15 + 29 + 17 + 12 + 29),然后创建一个偏好较高值的微调。有点像饼图,我们从样本集中随机选择,但赞成具有最高价值的个人。逆向概率选择(进化算法的逆适应选择)

以上数字随机选择array[0]的例子为11%,而array[5]为25%。这很好

我想要做的事情是赞成较低的数字和所有我的头脑风暴的能力,我无法找到一种方法来让较低的数字具有统计上相同的选择概率,就像我们选择较大的数字一样。我接触过这个问题

的方法之一是增加array[]然后减去从总给你一个array2[102, 99, 85, 102, 85]然后重新计算百分比每个值从array2[].给予array[0] 21%。这个解决方案的问题是在array[1]中具有接近的选择统计概率的元素具有较远的选择百分比。

我们也尝试只交换最低和最高,然后是下一个最低的百分比值,但是这给了我们第一次尝试的同样的问题。

我觉得应该有一个简单的方法来解决这个问题。

注意:如果您熟悉进化/遗传计算,我们将尝试根据健身比例进行父母选择。但是,我们的适应度值是颠倒的(越低越好)。那么,如果适合度越低越好,我们如何为父母选择健身比例?

+0

我无法弄清楚你想要什么。你的第4段表示“赞成较低的数字......给较低的数字一个统计上相等的概率”,这是一个矛盾。你想要什么?每个数字有相同的概率,在这种情况下是1/5,还是其他的? – 2010-12-09 04:10:49

回答

2

你为什么不用反向工作?在你的例子中概率的基数组是array[1.0/12, 1.0/15, 1.0/29, 1.0/17, 1.0/12, 1.0/29],其余的将保持不变。