วิธีเปรียบเทียบชุดข้อมูล 2 ชุดกับโปรไฟล์ Pandas

Nov 25 2022
กรณีการใช้งานคุณภาพข้อมูลด้วย EDA ขั้นสูง
การแสดงภาพเป็นรากฐานที่สำคัญของ EDA เมื่อเผชิญกับชุดข้อมูลใหม่ที่ไม่รู้จัก การตรวจสอบด้วยภาพจะช่วยให้เราเข้าใจข้อมูลที่มีอยู่ วาดรูปแบบบางอย่างเกี่ยวกับข้อมูล และวินิจฉัยปัญหาต่างๆ ที่เราอาจต้องแก้ไข
รายงานเปรียบเทียบโปรไฟล์หมีแพนด้า (ภาพหน้าจอโดยผู้เขียน)

การแสดงภาพเป็นรากฐานที่สำคัญของ EDA เมื่อเผชิญกับชุดข้อมูลใหม่ที่ไม่รู้จัก การตรวจสอบด้วยภาพจะช่วยให้เราเข้าใจข้อมูลที่มีอยู่ วาดรูปแบบบางอย่างเกี่ยวกับข้อมูล และวินิจฉัยปัญหาต่างๆ ที่เราอาจต้องแก้ไข ในเรื่องนี้Pandas Profilingเป็นมีดสวิสที่ขาดไม่ได้ในแถบเครื่องมือของนักวิทยาศาสตร์ข้อมูลทุกคน ในบทความที่ผ่านมาของฉัน ฉันได้กล่าวถึงการทำโปรไฟล์หมีแพนด้าว่ามีประโยชน์อย่างไรในขณะที่ใช้ EDA อนุกรมเวลาแต่ถ้าเราสามารถเปรียบเทียบชุดข้อมูลสองชุดได้ล่ะ

มีพวกเรากี่คนที่เริ่มพัฒนาโครงการวิทยาศาสตร์ข้อมูลและพยายามทำความเข้าใจว่าเราได้อะไรจากการแปลงข้อมูลและวิศวกรรมมากน้อยเพียงใด

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

ชุดข้อมูลที่ใช้ในบทความนี้สามารถพบได้ใน Kaggle ซึ่งเป็นชุดข้อมูล HCCโดยMiriam Santos (ใบอนุญาต: CC0: Public Domain ) สำหรับกรณีการใช้งานเฉพาะนี้ ฉันได้แนะนำปัญหาด้านคุณภาพข้อมูลเพิ่มเติมโดยไม่ได้ตั้งใจเพื่อแสดงให้คุณเห็นว่าการแสดงข้อมูลเป็นภาพสามารถช่วยเราตรวจจับและแนะนำเราไปสู่การลดประสิทธิภาพได้อย่างไร โค้ดและตัวอย่างทั้งหมดมีอยู่ใน GitHub และในกรณีที่คุณต้องการทบทวนเล็กน้อย อย่าลืมตรวจสอบบล็อกนี้เพื่อปัดฝุ่นทักษะการทำโปรไฟล์หมีแพนด้าของคุณ ดังนั้นในกรณีการใช้งานของเรา!

การทำโปรไฟล์ Pandas: EDA ที่ปลายนิ้วของคุณ

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

pip install pandas-profiling==3.5.0
    
      

Alerts shown in Pandas Profiling Report (scheenshot by author)

  • ทำซ้ำ : 4 แถวที่ซ้ำกันในข้อมูล;
  • ค่า คงที่ : ค่าคงที่ “999” ใน 'O2';
  • ความสัมพันธ์สูง : คุณสมบัติหลายอย่างที่ทำเครื่องหมายว่าสัมพันธ์กันสูง
  • ไม่มี : ไม่มีค่าใน ' Ferritin '

การลบแถวที่ซ้ำกัน : อาจมีระเบียนที่มีค่าเหมือนกันโดยไม่มีข้อผิดพลาด ทั้งนี้ขึ้นอยู่กับลักษณะของโดเมน อย่างไรก็ตาม เมื่อพิจารณาว่าคุณลักษณะบางอย่างในชุดข้อมูลนี้ค่อนข้างเฉพาะเจาะจงและอ้างอิงการวัดทางชีววิทยาของแต่ละบุคคล (เช่น "เฮโมโกลบิน", "MCV", "Albumin") จึงไม่น่าเป็นไปได้ที่ผู้ป่วยหลายรายจะรายงานค่าที่เหมือนกันทุกประการสำหรับคุณลักษณะทั้งหมด . เริ่มต้นด้วยการปล่อยรายการที่ซ้ำกันเหล่านี้ออกจากข้อมูล:

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

Missing Data Imputation : ชุดข้อมูล HCC ดูเหมือนจะอ่อนไหวอย่างมากต่อข้อมูลที่ขาดหายไป วิธีง่ายๆ ในการแก้ไขปัญหานี้ (หลีกเลี่ยงการลบบันทึกที่ไม่สมบูรณ์หรือคุณสมบัติทั้งหมด) คือการใช้การใส่ข้อมูล เราจะใช้การใส่ค่ากลางเพื่อเติมการสังเกตที่หายไป เนื่องจากเป็นเทคนิคการใส่ค่าทางสถิติที่ใช้กันทั่วไปและง่ายที่สุด และมักจะใช้เป็นวิธีการพื้นฐาน:

การเปรียบเทียบแบบเคียงข้างกัน: การทำซ้ำข้อมูลของคุณเร็วขึ้นและชาญฉลาดขึ้น

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

นี่คือวิธีที่รายงานทั้งสองแสดงในการเปรียบเทียบ:

การเปรียบเทียบข้อมูลต้นฉบับกับข้อมูลที่แปลงแล้ว (สกรีนแคสต์โดยผู้เขียน)

เราสามารถเข้าใจอะไรได้ทันทีจากภาพรวมชุดข้อมูลของเรา ชุดข้อมูลที่แปลงแล้วมีคุณลักษณะที่จัดหมวดหมู่น้อยกว่าหนึ่งคุณลักษณะ (“O2” ถูกลบออก) การสังเกต 165 รายการ (เทียบกับชุดข้อมูลดั้งเดิมที่มี 171 รายการที่ซ้ำกัน) และไม่มีค่าใดหายไป (ตรงกันข้ามกับการสังเกตที่ขาดหายไป 79 รายการในชุดข้อมูลดั้งเดิม)

แต่การเปลี่ยนแปลงนี้ส่งผลต่อคุณภาพของข้อมูลของเราอย่างไร และการตัดสินใจเหล่านั้นดีแค่ไหน?

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

ตามที่คาดไว้ ไม่มีการสังเกตที่ขาดหายไปหลังจากดำเนินการใส่ข้อมูล สังเกตว่าทั้งจำนวนค่าว่างและเมทริกซ์แสดงความแตกต่างระหว่างข้อมูลทั้งสองเวอร์ชันอย่างไร ในข้อมูลที่แปลงแล้ว ตอนนี้ “เฟอร์ริติน” มีค่าสมบูรณ์ 165 ค่า และไม่พบช่องว่างในเมทริกซ์ค่าว่าง

รายงานการเปรียบเทียบ: ค่าที่ขาดหายไป (สกรีนโดยผู้แต่ง)

อย่างไรก็ตาม เราสามารถอนุมานเป็นอย่างอื่นได้จากรายงานเปรียบเทียบ หากเราต้องตรวจสอบฮิสโตแกรมของ “Ferritin” เราจะเห็นว่าการป้อนค่าด้วยค่าเฉลี่ยนั้นบิดเบือนการกระจายข้อมูลดั้งเดิมอย่างไร ซึ่งเป็นสิ่งที่ไม่พึงปรารถนา

รายงานเปรียบเทียบ: Ferritin — ค่าที่ป้อนดูเหมือนจะบิดเบือนการกระจายคุณลักษณะดั้งเดิม (ภาพหน้าจอโดยผู้เขียน)

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

รายงานเปรียบเทียบ: ปฏิสัมพันธ์ระหว่าง Ferritin และอายุ: ค่าที่ป้อนจะแสดงเป็นเส้นแนวตั้งที่สอดคล้องกับค่าเฉลี่ย (ภาพหน้าจอโดยผู้เขียน)
รายงานเปรียบเทียบ: ความสัมพันธ์ — ค่าสหสัมพันธ์เฟอร์ริตินดูเหมือนจะเพิ่มขึ้นหลังจากการใส่ข้อมูล (ภาพหน้าจอโดยผู้เขียน)

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

ความคิดสุดท้าย

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

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

Fabiana Clemente , CDO ที่YData

เร่งความเร็ว AI ด้วยข้อมูลที่ได้รับการปรับปรุง