0Pricing
MLOps Academy · บทเรียน

ทดสอบหน่วยของไปป์ไลน์ข้อมูล

ตรวจยืนยันรูปร่าง ชนิดข้อมูล และช่วงค่าด้วย pytest

ทดสอบหน่วยของไปป์ไลน์ข้อมูล เป็นบทเรียน MLOps Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MLOps Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน

ทดสอบข้อมูล ไม่ใช่แค่โมเดล

ข้อบกพร่องส่วนใหญ่ของ ML ซ่อนอยู่ในกระบวนการประมวลผลข้อมูล ไม่ใช่ในโมเดล การทดสอบหน่วยเล็ก ๆ กับข้อมูลเพียงไม่กี่รายการจะช่วยตรวจพบปัญหาได้นานก่อนการฝึกสอน 🧪

pytest มอบอะไรให้คุณ

คุณเขียนการทดสอบเป็นฟังก์ชันธรรมดา แล้วให้pytestค้นหาและเรียกใช้ การยืนยันใด ๆ ที่ไม่ผ่านจะกลายเป็นรายงานข้อผิดพลาดที่ชัดเจนและอ่านง่าย

โครงสร้างของการทดสอบข้อมูล

การทดสอบข้อมูลจะโหลดข้อมูลตัวอย่าง เรียกใช้การแปลงของคุณ แล้วตรวจสอบความคาดหวัง เครื่องมือสำคัญคือคำสั่งยืนยันที่ตัดสินว่าผ่านหรือล้มเหลว

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

ยืนยันรูปร่างข้อมูล

กระบวนการประมวลผลอาจลบหรือเพิ่มคอลัมน์โดยไม่แจ้งให้ทราบ ล็อกรูปร่างข้อมูลไว้ เพื่อไม่ให้ DataFrame 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 จะสร้าง DataFrame ขนาดเล็กที่จัดทำขึ้นเอง ทำให้การทดสอบรวดเร็วและไม่แตะต้องข้อมูลจริง

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

ทดสอบการแปลงแต่ละขั้นตอนแยกกัน

ทดสอบทีละขั้นตอน เพื่อให้ความล้มเหลวชี้ไปยังต้นเหตุที่แน่นอนได้ทันที นี่คือการทดสอบหน่วย ซึ่งมีขนาดเล็ก แยกอิสระ และแก้ไขข้อบกพร่องได้รวดเร็ว

เรียกใช้ชุดการทดสอบ

คำสั่งเดียวจะเรียกใช้การทดสอบทั้งหมดและแสดงสรุปเป็นสีเขียวหรือสีแดง เรียกใช้ pytest ในเครื่อง และเรียกใช้อีกครั้งใน CI ทุกครั้งที่ส่งการเปลี่ยนแปลง

# in your terminal
pytest -q

ตั้งใจทดสอบกรณีขอบ

ป้อน DataFrame ว่าง หนึ่งแถว หรือข้อมูลนำเข้าที่เป็นค่าว่างทั้งหมด การทดสอบกรณีขอบที่ดีจะแสดงให้เห็นว่ากระบวนการประมวลผลล้มเหลวอย่างชัดเจน ไม่ใช่ล้มเหลวอย่างเงียบ ๆ

ตรวจสอบอย่างรวดเร็ว

การตรวจสอบใดช่วยป้องกันไม่ให้คอลัมน์ถูกอ่านเป็นชนิดข้อมูลที่ไม่ถูกต้องได้ดีที่สุด

สรุป: การทดสอบตรวจจับข้อบกพร่องของข้อมูล

ตอนนี้คุณทดสอบข้อมูลแบบหน่วยด้วย pytest โดยยืนยันรูปร่าง ชนิดข้อมูล ช่วงค่า และค่าว่างบนข้อมูลประกอบขนาดเล็ก ทำให้ข้อมูลเสียหายทำให้กระบวนการสร้างล้มเหลว ไม่ใช่ผู้ใช้ของคุณ ✅

คำถามที่พบบ่อย

บทเรียน “ทดสอบหน่วยของไปป์ไลน์ข้อมูล” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ทดสอบหน่วยของไปป์ไลน์ข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MLOps Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ทดสอบหน่วยของไปป์ไลน์ข้อมูล”

ตรวจยืนยันรูปร่าง ชนิดข้อมูล และช่วงค่าด้วย pytest คุณปฏิบัติ MLOps Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MLOps Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MLOps Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ทดสอบหน่วยของไปป์ไลน์ข้อมูล” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MLOps Academy นี้ได้ไหม

ได้ บทเรียน MLOps Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทดสอบหน่วยของไปป์ไลน์ข้อมูล
  2. การทดสอบพฤติกรรมของโมเดล
  3. กำหนดเกณฑ์คุณภาพและค่าขีดจำกัด
  4. ตรวจสอบข้อมูลด้วย Great Expectations
← กลับไปที่ MLOps Academy