python - random.choices 中的累积权重
问题描述
我对使用random.choices
Python 3.6 中的新功能感到困惑。
这是文档:
random.choices(population, weights=None, *, cum_weights=None, k=1)
-- 返回一个k大小的元素列表,该列表是从具有替换的总体中选择的。如果人口为空,则提高
IndexError
.
他们举了一个例子:weights=[10, 5, 30, 5]
我不知道这是什么意思。为什么它们的总和不等于 100?如果我的人口是[1, 2, 3, 4]
——这是否意味着选择“10”的概率为 0.1?
解决方案
总重量为10+5+30+5=50。
假设人口为 [1,2,3,4]。
它以 10/50 = 0.2 的概率返回 1
它以 5/50 = 0.1 的概率返回 2
它以 30/50 = 0.6 的概率返回 3
它以 5/50 = 0.1 的概率返回 4
推荐阅读
- deep-learning - 反向传播是否使用优化函数来更新权重?
- r - R 从 Eikon 云中检索信息
- sql - 在数据仓库中使用代理键的优缺点
- python - 通过python的Google Drive api v3文件上传错误
- docker - 使用 ssh 密钥在服务器上运行作业
- python - 像 pandas DataFrame resample 一样的 numpy 矢量化重采样
- batch-file - 如果已经存在,则使用批处理从主机文件中删除行
- terraform - Terraform:在 azure policy 倡议中将变量作为参数传递
- reactjs - React hook - 我可以在函数(钩子)之外使用公共变量还是它是反模式?
- java - 在 spring-boot 中使用 web-client 解析 text/html 对 xml 的响应