ทดสอบหน่วยของไปป์ไลน์ข้อมูล
ตรวจยืนยันรูปร่าง ชนิดข้อมูล และช่วงค่าด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทดสอบหน่วยของไปป์ไลน์ข้อมูล
- การทดสอบพฤติกรรมของโมเดล
- กำหนดเกณฑ์คุณภาพและค่าขีดจำกัด
- ตรวจสอบข้อมูลด้วย Great Expectations