概率即频率
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 13 课,共 64 课。
垃圾邮件过滤器显示“90% 是垃圾邮件”;种子包装上写着“80% 会发芽”。概率表示长期来看所占的比例,范围从 0(从不)到 1(总是)。这里有 50 粒种子:
rng.random(n) 会生成 0 到 1 之间的小数,其中 80% 小于 0.8。所以,只需进行一次比较,就能播下 1000 颗种子:
rng = np.random.default_rng(3)
sprouted = rng.random(1000) < 0.8
print(sprouted.sum())
print(sprouted.mean())这会输出:
814
0.814布尔值的平均值就是 True 的占比:0.814,接近 0.8。到本章结束时,这个技巧就能用来给整个骰子摊位定价。
挑战
中等射手以一定的概率罚进点球。程序读取概率(0 到 1),然后读取踢球次数;起始代码会创建 rng。
- 模拟踢球:每当
rng.random生成的数小于该概率时,就算进球。 - 打印进球数和估算的概率,并四舍五入到 3 位小数。
对于 0.5 和 10 次踢球,短时间运行的结果可能会明显偏离 0.5:
Goals: 3 of 10
Estimated chance: 0.3亲手试试
import numpy as np
chance = float(input())
kicks = int(input())
# 不要修改下面这行代码
rng = np.random.default_rng(21)
# 在下面编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器