RSVP สำหรับกิจกรรม TensorFlow Everywhere ในพื้นที่ของคุณวันนี้!
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

TensorFlow Data Validation: การตรวจสอบและวิเคราะห์ข้อมูลของคุณ

เมื่อข้อมูลของคุณอยู่ในไปป์ไลน์ TFX คุณสามารถใช้ส่วนประกอบ TFX เพื่อวิเคราะห์และแปลงร่างได้ คุณสามารถใช้เครื่องมือเหล่านี้ได้ก่อนที่จะฝึกโมเดล

มีสาเหตุหลายประการในการวิเคราะห์และแปลงข้อมูลของคุณ:

  • เพื่อค้นหาปัญหาในข้อมูลของคุณ ปัญหาทั่วไป ได้แก่ :
    • ไม่มีข้อมูลเช่นฟีเจอร์ที่มีค่าว่าง
    • ป้ายกำกับถือเป็นคุณสมบัติเพื่อให้โมเดลของคุณมองหาคำตอบที่ถูกต้องในระหว่างการฝึกอบรม
    • คุณลักษณะที่มีค่าอยู่นอกช่วงที่คุณคาดหวัง
    • ความผิดปกติของข้อมูล
  • เพื่อสร้างชุดคุณลักษณะที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่นคุณสามารถระบุ:
    • คุณสมบัติที่ให้ข้อมูลโดยเฉพาะ
    • คุณสมบัติที่ซ้ำซ้อน
    • คุณสมบัติที่แตกต่างกันมากจนอาจทำให้การเรียนรู้ช้าลง
    • คุณลักษณะที่มีข้อมูลการคาดการณ์ที่เป็นเอกลักษณ์เพียงเล็กน้อยหรือไม่มีเลย

เครื่องมือ TFX สามารถช่วยค้นหาจุดบกพร่องของข้อมูลและช่วยในด้านวิศวกรรมคุณลักษณะ

การตรวจสอบข้อมูล TensorFlow

ภาพรวม

TensorFlow Data Validation ระบุความผิดปกติในการฝึกอบรมและการให้บริการข้อมูลและสามารถสร้างสคีมาโดยอัตโนมัติโดยการตรวจสอบข้อมูล คอมโพเนนต์สามารถกำหนดค่าเพื่อตรวจจับความผิดปกติของคลาสต่างๆในข้อมูล มันสามารถ

  1. ดำเนินการตรวจสอบความถูกต้องโดยการเปรียบเทียบสถิติข้อมูลกับสคีมาที่เข้ารหัสความคาดหวังของผู้ใช้
  2. ตรวจจับการเอียงที่ให้บริการการฝึกอบรมโดยการเปรียบเทียบตัวอย่างในข้อมูลการฝึกอบรมและการให้บริการ
  3. ตรวจจับการลอยของข้อมูลโดยดูจากชุดข้อมูล

เราจัดทำเอกสารฟังก์ชันการทำงานเหล่านี้อย่างอิสระ:

การตรวจสอบตัวอย่างตามสคีมา

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

คุณลักษณะขั้นสูงของ Schema

ส่วนนี้ครอบคลุมการกำหนดค่าสคีมาขั้นสูงเพิ่มเติมที่สามารถช่วยในการตั้งค่าพิเศษ

คุณสมบัติเบาบาง

การเข้ารหัสคุณลักษณะที่กระจัดกระจายในตัวอย่างมักจะแนะนำคุณลักษณะหลายอย่างที่คาดว่าจะมีความสามารถเท่ากันสำหรับตัวอย่างทั้งหมด ตัวอย่างเช่นคุณลักษณะกระจัดกระจาย:


WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
จะเข้ารหัสโดยใช้คุณลักษณะที่แยกจากกันสำหรับดัชนีและค่า:

WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
โดยมีข้อ จำกัด ที่ความสามารถของดัชนีและคุณลักษณะค่าควรตรงกับตัวอย่างทั้งหมด ข้อ จำกัด นี้สามารถทำให้ชัดเจนในสคีมาโดยการกำหนด sparse_feature:

sparse_feature {
  name: 'WeightedCategories'
  index_feature { name: 'WeightedCategoriesIndex' }
  value_feature { name: 'WeightedCategoriesValue' }
}

ข้อกำหนดคุณลักษณะแบบกระจัดกระจายต้องการดัชนีอย่างน้อยหนึ่งรายการและคุณลักษณะค่าหนึ่งซึ่งอ้างถึงคุณลักษณะที่มีอยู่ในสคีมา การกำหนดคุณลักษณะแบบกระจัดกระจายอย่างชัดเจนทำให้ TFDV สามารถตรวจสอบความจุของคุณสมบัติที่อ้างถึงทั้งหมดได้

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

สคีมาสภาพแวดล้อม

ตามค่าเริ่มต้นการตรวจสอบจะถือว่าตัวอย่างทั้งหมดในไปป์ไลน์เป็นไปตามสคีมาเดียว ในบางกรณีจำเป็นต้องมีการแนะนำรูปแบบสคีมาเล็กน้อยตัวอย่างเช่นคุณลักษณะที่ใช้เป็นป้ายกำกับจำเป็นในระหว่างการฝึกอบรม (และควรได้รับการตรวจสอบความถูกต้อง) แต่จะขาดหายไประหว่างการแสดง สภาพแวดล้อมสามารถใช้เพื่อแสดงข้อกำหนดดังกล่าวโดยเฉพาะ default_environment() , in_environment() , not_in_environment()

ตัวอย่างเช่นสมมติว่าคุณลักษณะชื่อ "LABEL" จำเป็นสำหรับการฝึกอบรม แต่คาดว่าจะหายไปจากการแสดง สิ่งนี้สามารถแสดงได้โดย:

  • กำหนดสภาพแวดล้อมที่แตกต่างกันสองแบบในสคีมา: ["SERVING", "TRAINING"] และเชื่อมโยง "LABEL" กับสภาพแวดล้อม "TRAINING" เท่านั้น
  • เชื่อมโยงข้อมูลการฝึกอบรมกับสภาพแวดล้อม "TRAINING" และข้อมูลการให้บริการกับสภาพแวดล้อม "SERVING"
Schema Generation

สคีมาข้อมูลอินพุตถูกระบุเป็นอินสแตนซ์ของ TensorFlow Schema

แทนที่จะสร้างสคีมาด้วยตนเองตั้งแต่เริ่มต้นนักพัฒนาสามารถพึ่งพาการสร้างสคีมาอัตโนมัติของ TensorFlow Data Validation โดยเฉพาะอย่างยิ่ง TensorFlow Data Validation จะสร้างสคีมาเริ่มต้นโดยอัตโนมัติตามสถิติที่คำนวณจากข้อมูลการฝึกอบรมที่มีอยู่ในไปป์ไลน์ ผู้ใช้สามารถตรวจสอบสคีมาที่สร้างขึ้นโดยอัตโนมัตินี้แก้ไขได้ตามต้องการตรวจสอบในระบบควบคุมเวอร์ชันและส่งไปยังท่อส่งอย่างชัดเจนเพื่อการตรวจสอบเพิ่มเติม

TFDV รวม infer_schema() เพื่อสร้างสคีมาโดยอัตโนมัติ ตัวอย่างเช่น:

schema = tfdv.infer_schema(statistics=train_stats)
tfdv.display_schema(schema=schema)

สิ่งนี้ทริกเกอร์การสร้างสคีมาโดยอัตโนมัติตามกฎต่อไปนี้:

  • หากสคีมาถูกสร้างขึ้นโดยอัตโนมัติแล้วระบบจะใช้ตามที่เป็นอยู่

  • มิฉะนั้น TensorFlow Data Validation จะตรวจสอบสถิติข้อมูลที่มีอยู่และคำนวณสคีมาที่เหมาะสมสำหรับข้อมูล

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

การตรวจจับการเอียงการฝึกอบรม

ภาพรวม

TensorFlow Data Validation สามารถตรวจจับการกระจายความเบ้ระหว่างข้อมูลการฝึกอบรมและการให้บริการ การกระจายเอียงเกิดขึ้นเมื่อการกระจายค่าคุณลักษณะสำหรับข้อมูลการฝึกอบรมแตกต่างจากข้อมูลการแสดงผลอย่างมีนัยสำคัญ สาเหตุสำคัญประการหนึ่งของการกระจายความเบ้คือการใช้คลังข้อมูลที่แตกต่างกันโดยสิ้นเชิงสำหรับการสร้างข้อมูลการฝึกอบรมเพื่อเอาชนะการขาดข้อมูลเริ่มต้นในคลังข้อมูลที่ต้องการ อีกสาเหตุหนึ่งคือกลไกการสุ่มตัวอย่างที่ผิดพลาดซึ่งเลือกเฉพาะตัวอย่างย่อยของข้อมูลที่ให้บริการเพื่อฝึกอบรม

สถานการณ์ตัวอย่าง

ดู คู่มือเริ่มต้นใช้งานการตรวจสอบความถูกต้องข้อมูล TensorFlow สำหรับข้อมูลเกี่ยวกับการกำหนดค่าการตรวจจับการเอียงที่ให้บริการการฝึกอบรม

Drift Detection

รองรับการตรวจจับ Drift ระหว่างช่วงข้อมูลที่ต่อเนื่องกัน (เช่นระหว่างช่วง N และช่วง N + 1) เช่นข้อมูลการฝึกอบรมระหว่างวันต่างๆ เราแสดงการดริฟท์ในแง่ของระยะ L-infinity สำหรับคุณสมบัติที่เป็นหมวดหมู่และ ความแตกต่างของ Jensen-Shannon โดยประมาณสำหรับคุณสมบัติที่เป็นตัวเลข คุณสามารถกำหนดระยะเกณฑ์เพื่อให้คุณได้รับคำเตือนเมื่อดริฟท์สูงกว่าที่ยอมรับได้ โดยทั่วไปการตั้งค่าระยะทางที่ถูกต้องเป็นกระบวนการซ้ำ ๆ ที่ต้องใช้ความรู้และการทดลองเกี่ยวกับโดเมน

โปรดดู คู่มือเริ่มต้นใช้งานการตรวจสอบความถูกต้องข้อมูล TensorFlow สำหรับข้อมูลเกี่ยวกับการกำหนดค่าการตรวจจับดริฟท์

การใช้การแสดงภาพเพื่อตรวจสอบข้อมูลของคุณ

TensorFlow Data Validation มีเครื่องมือสำหรับการแสดงภาพการกระจายค่าคุณลักษณะ ด้วยการตรวจสอบการกระจายเหล่านี้ในสมุดบันทึก Jupyter โดยใช้ Facets คุณสามารถตรวจจับปัญหาทั่วไปเกี่ยวกับข้อมูลได้

สถิติคุณลักษณะ

การระบุการกระจายที่น่าสงสัย

คุณสามารถระบุจุดบกพร่องทั่วไปในข้อมูลของคุณได้โดยใช้การแสดงภาพรวมของ Facets เพื่อค้นหาการกระจายค่าคุณลักษณะที่น่าสงสัย

ข้อมูลไม่สมดุล

คุณลักษณะที่ไม่สมดุลคือคุณลักษณะที่มีค่าหนึ่งเหนือกว่า คุณลักษณะที่ไม่สมดุลอาจเกิดขึ้นได้ตามธรรมชาติ แต่หากคุณลักษณะมีค่าเท่ากันเสมอคุณอาจมีข้อบกพร่องของข้อมูล หากต้องการตรวจหาคุณลักษณะที่ไม่สมดุลในภาพรวม Facets ให้เลือก "ความไม่สม่ำเสมอ" จากเมนูแบบเลื่อนลง "จัดเรียงตาม"

คุณลักษณะที่ไม่สมดุลที่สุดจะแสดงอยู่ที่ด้านบนของรายการคุณลักษณะแต่ละประเภท ตัวอย่างเช่นภาพหน้าจอต่อไปนี้แสดงคุณลักษณะหนึ่งที่เป็นศูนย์ทั้งหมดและวินาทีที่มีความไม่สมดุลอย่างมากที่ด้านบนของรายการ "คุณลักษณะตัวเลข":

การแสดงข้อมูลที่ไม่สมดุล

ข้อมูลที่กระจายอย่างสม่ำเสมอ

คุณลักษณะที่กระจายอย่างสม่ำเสมอคือค่าที่เป็นไปได้ทั้งหมดปรากฏโดยใกล้เคียงกับความถี่เดียวกัน เช่นเดียวกับข้อมูลที่ไม่สมดุลการกระจายนี้สามารถเกิดขึ้นได้ตามธรรมชาติ แต่ยังสามารถเกิดขึ้นได้จากจุดบกพร่องของข้อมูล

ในการตรวจจับคุณลักษณะที่กระจายอย่างสม่ำเสมอในภาพรวม Facets ให้เลือก "ความไม่สม่ำเสมอ" จากเมนูแบบเลื่อนลง "เรียงตาม" และเลือกช่องทำเครื่องหมาย "ลำดับย้อนกลับ":

ฮิสโตแกรมของข้อมูลสม่ำเสมอ

ข้อมูลสตริงจะแสดงโดยใช้แผนภูมิแท่งหากมีค่าที่ไม่ซ้ำกัน 20 ค่าหรือน้อยกว่าและเป็นกราฟการแจกแจงสะสมหากมีค่าที่ไม่ซ้ำกันมากกว่า 20 ค่า ดังนั้นสำหรับข้อมูลสตริงการแจกแจงแบบสม่ำเสมอสามารถปรากฏเป็นกราฟแท่งแบนเช่นกราฟแท่งด้านบนหรือเส้นตรงเช่นด้านล่าง:

กราฟเส้น: การแจกแจงแบบสะสมของข้อมูลที่สม่ำเสมอ

ข้อบกพร่องที่สามารถสร้างข้อมูลที่กระจายอย่างสม่ำเสมอ

ต่อไปนี้เป็นจุดบกพร่องทั่วไปที่สามารถสร้างข้อมูลที่กระจายอย่างสม่ำเสมอ:

  • การใช้สตริงเพื่อแสดงชนิดข้อมูลที่ไม่ใช่สตริงเช่นวันที่ ตัวอย่างเช่นคุณจะมีค่าที่ไม่ซ้ำกันมากมายสำหรับคุณลักษณะวันที่และเวลาที่มีการแทนค่าเช่น "2017-03-01-11-45-03" ค่าที่ไม่ซ้ำกันจะกระจายอย่างสม่ำเสมอ

  • รวมดัชนีเช่น "หมายเลขแถว" เป็นคุณลักษณะ อีกครั้งคุณมีค่าที่ไม่ซ้ำกันมากมาย

ไม่มีข้อมูล

ในการตรวจสอบว่าคุณลักษณะไม่มีค่าทั้งหมดหรือไม่:

  1. เลือก "จำนวนเงินที่ขาดหายไป / ศูนย์" จากเมนูแบบเลื่อนลง "จัดเรียงตาม"
  2. เลือกช่องทำเครื่องหมาย "Reverse order"
  3. ดูที่คอลัมน์ "หายไป" เพื่อดูเปอร์เซ็นต์ของอินสแตนซ์ที่มีค่าที่ขาดหายไปสำหรับคุณลักษณะ

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

  1. เลือก "ความยาวรายการค่า" จากเมนูแบบเลื่อนลง "แผนภูมิที่จะแสดง" ทางด้านขวา

  2. ดูแผนภูมิทางด้านขวาของแถวคุณลักษณะแต่ละแถว แผนภูมิแสดงช่วงของความยาวรายการค่าสำหรับคุณลักษณะ ตัวอย่างเช่นแถวที่ไฮไลต์ในภาพหน้าจอด้านล่างแสดงคุณลักษณะที่มีรายการค่าความยาวเป็นศูนย์:

ภาพรวม Facets แสดงด้วยคุณลักษณะที่มีรายการค่าคุณลักษณะที่มีความยาวเป็นศูนย์

ความแตกต่างอย่างมากในขนาดระหว่างคุณสมบัติ

หากคุณสมบัติของคุณแตกต่างกันมากตามขนาดโมเดลอาจมีปัญหาในการเรียนรู้ ตัวอย่างเช่นหากคุณสมบัติบางอย่างแตกต่างกันไปตั้งแต่ 0 ถึง 1 และอื่น ๆ แตกต่างกันไปตั้งแต่ 0 ถึง 1,000,000,000 คุณจะมีความแตกต่างอย่างมาก เปรียบเทียบคอลัมน์ "สูงสุด" และ "ต่ำสุด" ในคุณลักษณะต่างๆเพื่อค้นหาสเกลที่แตกต่างกันอย่างกว้างขวาง

พิจารณาการปรับค่าคุณลักษณะให้เป็นมาตรฐานเพื่อลดรูปแบบที่หลากหลายเหล่านี้

ป้ายกำกับที่มีป้ายกำกับไม่ถูกต้อง

เครื่องมือประมาณการของ TensorFlow มีข้อ จำกัด เกี่ยวกับประเภทของข้อมูลที่ยอมรับเป็นป้ายกำกับ ตัวอย่างเช่นโดยทั่วไปตัวจำแนกไบนารีจะใช้ได้กับป้ายกำกับ {0, 1} เท่านั้น

ตรวจสอบค่าป้ายกำกับในภาพรวม Facets และตรวจสอบว่าเป็นไปตาม ข้อกำหนดของเครื่องมือประมาณการ