MLOps Academy · 课时

为您的数据流程编写单元测试

使用 pytest 断言形状、类型和取值范围

第 1 / 4 课13 个步骤

为您的数据流程编写单元测试 是 CoddyKit 上的免费 MLOps Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 MLOps Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 MLOps Academy 课程共包含 4 节课。

测试数据,而不只是模型

大多数机器学习错误都隐藏在数据流水线中,而不是模型里。对数据进行少量低成本的单元测试,可以在训练之前很久就发现问题。🧪

pytest 能为您做什么

您可以将测试写成普通函数,然后让pytest发现并运行它们。任何失败的断言都会转化为清晰易读的失败报告。

数据测试的组成

数据测试会加载一个样本,调用您的转换逻辑,然后断言某个预期结果。关键工具是决定通过或失败的断言语句。

def test_no_nulls(df):
    assert df["age"].notna().all()

断言形状

流水线可能会悄悄删除或添加列。请锁定形状,确保包含 10 列的数据框不会在无人察觉的情况下变成 9 列。

def test_shape(df):
    assert df.shape[1] == 10

断言列类型

被读取为文本的数字会悄悄破坏训练。请固定每列的数据类型,让类型漂移导致测试失败,而不是让模型失败。

def test_dtype(df):
    assert df["price"].dtype == "float64"

断言合理范围

请防止不可能的值出现。范围检查可以阻止负数年龄或 300% 的概率进入模型。

def test_range(df):
    assert df["age"].between(0, 120).all()

捕获空值

缺失值是最常见的数据错误。请断言关键列没有空值,或确保空值低于已知阈值。

使用小型测试夹具

测试应该在几毫秒内运行完成。pytest 的测试夹具会构建一个手工制作的小型数据框,让测试保持快速,并且永远不会接触真实数据。

import pytest
@pytest.fixture
def df():
    return load_sample()

单独测试每个转换

一次只测试一个步骤,这样失败时就能定位到确切的问题所在。这就是单元测试:规模小、相互隔离且易于快速调试。

运行测试套件

一条命令即可运行所有测试,并输出绿色或红色的汇总结果。请在本地运行pytest,并在每次推送时于持续集成环境中再次运行。

# in your terminal
pytest -q

有意测试边界情况

输入一个空数据框、一行数据或全为空值的输入。优秀的边界情况测试可以证明您的流水线会明确报错,而不是静默失败。

快速检查

哪项检查最能防止某列被读取为错误的类型?

回顾:测试捕获数据错误

现在,您可以使用pytest对数据进行单元测试:在小型测试夹具上断言形状、类型、范围和空值,让错误数据导致构建失败,而不是影响用户。✅

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「为您的数据流程编写单元测试」课时是免费的吗?

是的 — 「为您的数据流程编写单元测试」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 MLOps Academy 课程的其余内容,请升级到 CoddyKit PRO。 MLOps Academy 课程共包含 4 节课。

「为您的数据流程编写单元测试」这节课中我会学到什么?

使用 pytest 断言形状、类型和取值范围 你通过在浏览器中直接运行的动手代码来练习 MLOps Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 MLOps Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 MLOps Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「为您的数据流程编写单元测试」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 MLOps Academy 课中编写并运行代码吗?

能。每节 MLOps Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 为您的数据流程编写单元测试
  2. 模型行为测试
  3. 设置质量门槛和阈值
  4. 使用 Great Expectations 验证数据
← 返回 MLOps Academy