我需要概率地从一组数据中选择一个样本。
说我有一组值array[12, 15, 29, 17, 12, 29]
。标准方法是计算总数(12 + 15 + 29 + 17 + 12 + 29),然后创建一个有利于更高价值的微调器。有点像饼图,我们从样本集中随机选择,但有利于具有最高价值的个人。
如果数字高于你随机选择array[0]
的几率,那么array[5]
的概率为25%。那没关系
我想要做的事情是支持较低的数字,并且凭借我的所有头脑风暴能力,我无法想出一种方法来给予较低的数字在统计上相同的选择概率,就像我们选择较大的数字一样。
我解决问题的一种方法是添加array[]
然后从总数中减去每个值,然后给出array2[102, 99, 85, 102, 85]
,然后重新计算array2[].
给予array[0]
a的百分比21%。该解决方案的问题在于array[1]
中具有接近统计选择概率的元素具有较远的选择百分比。
我们还试图将最低和最高然后下一个最低值与下一个最高百分比值进行交换,但这会给您带来与我们第一次尝试时相同的问题。
我觉得必须要有一个简单的方法。
注意:如果您熟悉进化/遗传计算,我们会尝试根据健康比例进行父选择。但是,我们的适应值反转(越低越好)。那么,如果适应度越低越好,我们如何为父母选择健身比例?
答案 0 :(得分:3)
为什么不使用反转?您示例中概率的基础数组将为array[1.0/12, 1.0/15, 1.0/29, 1.0/17, 1.0/12, 1.0/29]
,其余的将保持不变。