Menu
CoddyTech

68-95-99.7 规则

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 10 课,共 64 课。

对于正态分布的数据,标准差(std)可以告诉你有多少数据距离均值有多远。咖啡的倒出量均值为 250 ml,标准差为 5 ml:

咖啡倒出量的钟形曲线以 250 ml 为中心,245 到 255 之间颜色最深,向外延伸到 240 和 260 时颜色较浅,延伸到 235 和 265 时颜色最浅。括号标注:1 个标准差以内占 68%,2 个标准差以内占 95%,3 个标准差以内占 99.7%

这就是68-95-99.7 规则。在 10,000 个模拟杯子上验证一下:一个掩码会统计位于 1 个标准差范围内的杯子。

rng = np.random.default_rng(1)
cups = rng.normal(250, 5, size=10000)
within1 = (cups > 245) & (cups < 255)
print(within1.sum() / cups.size)

输出结果为:

0.6868

对于下面的任意值,stats.norm.cdf(x, mean, std) 会给出 x 左侧的面积:stats.norm.cdf(260, 250, 5) 的结果是 0.977。

每 1,000 次中,会有 3 次超过 3 个标准差:这种情况足够罕见,应该在数据进入模型前标记出来。

challenge icon

挑战

简单

实验室让 5,000 个灯泡一直运行,直到它们烧坏。life 保存了它们的运行小时数,程序会读取 h。使用 life 的均值和标准差(np.std),以百分比形式打印以下比例(保留 1 位小数):

  1. 在均值的 1 个标准差范围内,
  2. 在 2 个标准差范围内,
  3. 低于 h 的比例,按实际数量统计,
  4. 低于 h 的比例,按正态曲线计算。

对于另一批灯泡,输入 1100 时:

Within 1 std: 67.6%
Within 2 std: 95.7%
Below 1100 hours, counted: 10.2%
Below 1100 hours, normal curve: 10.1%

亲手试试

import numpy as np
from scipy import stats

# 不要修改下面的代码行
rng = np.random.default_rng(12)
life = np.round(rng.normal(1200, 100, size=5000))
h = int(input())

# 在下面编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

机器学习统计学中的所有课

自己练习: Python 在线编译器