假设我有一个频率列表。你知道吗
class 1 => 9
class 2 => 5
class 3 => 6
class 4 => 100
将其转换为概率,其中总和=#总发生率
0.075、0.0417、0.05、0.83
假设有500个类,我的目标是从这500个类中随机选择n个数,比如说20个,概率与频率不成正比。你知道吗
所以,我希望类1(频率=9)比类2(频率为5)和类3(频率为6)有更多被选中的概率,但比类4(频率为100)要小。同样的逻辑也适用于其他类。你知道吗
另外,我希望这些类被选中的概率是成比例的。第4班(83%)比第1班(7.5%)更可能被选中。同样,同样的逻辑也适用于其他类。你知道吗
回到我实际处理的问题,我有大约3000个类,其中95%的类的频率概率约为0.1%。少数5%的人说40%20%3%。(在这5%中,范围相当大,即使是这一组中最小的也明显大于其他95%)。除此之外,我还需要从
因此,我不能真正使用蒙特卡罗方法,当生成的随机数高于类概率时,我选择阈值并选择类。你知道吗
我朋友建议我们从1中减去这些数字。所以低概率现在有更高的变化被选中。但因为95%的概率很低。按照我朋友的建议去做,谁比谁都能保证95%的人几乎肯定地被选中。你知道吗
这很粗糙,但你可以这样做:
将概率转换为变量列表,并在其中运行循环。然后做20次。这样行吗?你知道吗
相关问题 更多 >
编程相关推荐