หน่วย
1. ปัญญาประดิษฐ์เบื้องต้นในวิทยาศาสตร์ข้อมูลและการวิเคราะห์: ขั้นตอนการทำงาน บทบาท ขอบเขต การตรวจสอบความถูกต้อง และจริยธรรม 2. การรวบรวมข้อมูลและความเข้าใจแหล่งที่มา: สคีมา การสุ่มตัวอย่าง การรับรู้คุณภาพและการรั่วไหล 3. การล้างข้อมูลและการประมวลผลล่วงหน้า: ค่าที่หายไป ค่าผิดปกติ และการแปลงประเภท 4. การวิเคราะห์ข้อมูลเชิงสำรวจ (EDA): การแจกแจง ความสัมพันธ์ และข้อมูลเชิงลึกเบื้องต้น 5. วิศวกรรมเชิงคุณลักษณะ: การสร้างตัวแปร การเข้ารหัส การปรับขนาด และการหลีกเลี่ยงการรั่วไหล 6. การสร้างโมเดล: การนิยามปัญหา การเลือกอัลกอริทึม และการแบ่งการฝึกอบรม/การทดสอบ 7. การประเมินแบบจำลอง: การวัด การตรวจสอบข้าม และการเรียนรู้ขั้นสูง 8. การแสดงภาพและการเล่าเรื่อง: กราฟิกที่แม่นยำ กราฟิกที่เที่ยงตรง 9. การสร้างโค้ด: การวิเคราะห์โดยใช้ AI ด้วย Python (pandas) และ SQL 10. การรั่วไหลของข้อมูลและการทำซ้ำ: ภัยพิบัติเงียบและวินัย 11. มูลนิธิ MLOps จริยธรรม ความเป็นส่วนตัว และการวิเคราะห์อย่างมีความรับผิดชอบ
หน่วย 2 / 11

การรวบรวมข้อมูลและความเข้าใจแหล่งที่มา: สคีมา การสุ่มตัวอย่าง การรับรู้คุณภาพและการรั่วไหล

กำไร:

  • ความสามารถในการจดจำแหล่งข้อมูลที่แตกต่างกัน (ฐานข้อมูล, API, ไฟล์, การขูดเว็บ) และข้อผิดพลาดของแหล่งข้อมูลแต่ละแหล่ง และเข้าใจสคีมาได้อย่างถูกต้อง
  • ความสามารถในการสุ่มตัวอย่างซ้ำได้โดยการประเมินว่าตัวอย่างแสดงถึงประชากรและความลำเอียงในการเลือกหรือไม่
  • ความสามารถในการกำจัดการรั่วไหลของข้อมูลในขั้นตอนการเก็บรวบรวมและปฏิบัติตามขอบเขตทางกฎหมาย/จริยธรรมโดยถามคำถาม 'ฉันจะได้ข้อมูลในขณะที่คาดการณ์' ในแต่ละคอลัมน์หรือไม่

การวิเคราะห์ทุกครั้งจะดีพอๆ กับคุณภาพของข้อมูลที่คุณรวบรวม แม้แต่แบบจำลองที่ทันสมัยที่สุดในโลกก็ยังให้ผลลัพธ์ที่ไม่น่าเชื่อถือหากทำงานกับข้อมูลที่รวบรวมไม่ถูกต้อง เก็บตัวอย่างอย่างลำเอียง หรือมีข้อมูลเกี่ยวกับอนาคต ในวิทยาการคอมพิวเตอร์ หลักการนี้สรุปได้ว่า "ขยะเข้า ขยะออก" (ขยะเข้า ขยะออก) ในหน่วยนี้ เราจะครอบคลุมขั้นตอนการรวบรวมข้อมูล: การทำความเข้าใจแหล่งที่มา การสุ่มตัวอย่าง การถามคำถามที่มีคุณภาพ และการแจ้งเตือนถึงความเสี่ยงของการรั่วไหลของข้อมูลตั้งแต่วันแรก ปัญญาประดิษฐ์เป็นตัวช่วยที่ทรงพลังในขั้นตอนนี้ เขียนแบบสอบถาม SQL, สรุปเอกสาร API, ร่างสัญญาข้อมูล แต่มนุษย์เป็นคนตัดสินใจว่าข้อมูลใดที่คุณรวบรวมและข้อมูลนั้นเป็นตัวแทนของคุณหรือไม่

ทำความรู้จักกับแหล่งข้อมูล

ข้อมูลมาจากที่ต่างกัน และแต่ละแหล่งที่มาก็มีข้อผิดพลาดของตัวเอง ฐานข้อมูล (ข้อมูลที่มีโครงสร้างจัดเก็บไว้ในตาราง ซึ่งมักจะสืบค้นด้วย SQL) เป็นแหล่งที่พบได้บ่อยที่สุด มีความน่าเชื่อถือ แต่จำเป็นต้องเข้าใจโครงร่างให้ดี API (Application Programming Interface) ให้ข้อมูลสดแต่มีความเสี่ยงต่อการจำกัดความเร็วและการเปลี่ยนแปลงรูปแบบ ไฟล์ (CSV, Excel, JSON) มีความยืดหยุ่นแต่มีแนวโน้มที่จะจัดรูปแบบไม่สอดคล้องกัน การขูดเว็บมีประสิทธิภาพ แต่ก็มีข้อจำกัดทางกฎหมายและจริยธรรม ไม่ใช่ทุกไซต์ที่สามารถคัดลอกได้

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

ทำความเข้าใจสคีมา: ทำความคุ้นเคยกับข้อมูล

ก่อนที่จะรวบรวมชุดข้อมูล คุณต้องเข้าใจสคีมาของชุดข้อมูล (ชื่อของคอลัมน์ ประเภทข้อมูล ความหมาย และความสัมพันธ์ระหว่างกัน) AI มีประโยชน์มากในการสร้าง "พจนานุกรมข้อมูล" ซึ่งเป็นตารางที่อธิบายว่าแต่ละคอลัมน์หมายถึงอะไร แต่คำอธิบายที่ AI สร้างขึ้นนั้นเป็นการคาดการณ์ ยืนยันความหมายที่แท้จริงของแต่ละคอลัมน์กับทีมงานที่จัดทำข้อมูล ตัวอย่างเช่น คอลัมน์ชื่อ "สถานะ" อาจมี 0/1/2; มีเพียงทีมผู้สร้างเท่านั้นที่รู้ว่าสิ่งเหล่านี้ "รอดำเนินการ/อนุมัติ/ยกเลิก" หรืออย่างอื่น

ตารางต่อไปนี้สรุปประเภททรัพยากรพื้นฐานและข้อควรระวัง:

แหล่งที่มา

จุดแข็ง

กับดัก

AI ช่วยได้อย่างไร

ฐานข้อมูล SQL

มีโครงสร้างเชื่อถือได้

เข้าร่วมที่ซับซ้อน

เขียนแบบสอบถามแบบร่าง

เอพีไอ

ข้อมูลสด

การจำกัดความเร็ว การเปลี่ยนแปลงรูปร่าง

สรุปเอกสารดึงรหัส

CSV/Excel

มีความยืดหยุ่นรวดเร็ว

รูปแบบไม่สอดคล้องกัน

อ่าน/แยกโค้ด

การขูดเว็บ

เข้าถึงได้กว้าง

ข้อจำกัดทางกฎหมาย/จริยธรรม

การแยกวิเคราะห์ร่าง (ภายในอำนาจ)

ข้อมูลบันทึก/เหตุการณ์

รายละเอียด

ปริมาณมาก

การกรองแบบสอบถาม

ภาพประกอบ: ส่วนหนึ่งเป็นตัวแทนทั้งหมดหรือไม่?

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

การรับรู้รั่วไหลตั้งแต่วันแรก

การรั่วไหลของข้อมูลเป็นสาเหตุของภัยพิบัติส่วนใหญ่ และมักเกิดขึ้นในระหว่างขั้นตอนการรวบรวมข้อมูล ตัวอย่าง: เมื่อคาดการณ์ "ถูกยกเลิกหรือไม่" หากคุณเพิ่มคอลัมน์ "วันที่ยกเลิก" ลงในข้อมูล โมเดลจะพิจารณาถึงอนาคต ในระหว่างขั้นตอนการรวบรวม ให้ถามคำถามหนึ่งข้อสำหรับแต่ละคอลัมน์: “ฉันจะได้ข้อมูลนี้จริง ๆ หรือไม่ในขณะที่ทำการทำนาย” หากคำตอบคือไม่ แสดงว่าคอลัมน์นั้นรั่ว เราจะกล่าวถึงหัวข้อนี้อย่างเจาะลึกในบทที่ 10 แต่การรับรู้ควรเริ่มตั้งแต่วันแรก

มินิเคสสามอัน

กรณีที่ 1 — ปัญหาของการเป็นตัวแทน ธนาคารแห่งหนึ่งรวบรวมข้อมูลเฉพาะสินเชื่อที่ได้รับอนุมัติสำหรับแบบจำลองความเสี่ยงด้านเครดิต (18,500 รายการ) การปฏิเสธไม่ได้อยู่ในข้อมูล แบบจำลองนี้ผิดในโลกแห่งความเป็นจริง เนื่องจากไม่เคยเห็นว่าผู้ถูกปฏิเสธจะมีพฤติกรรมอย่างไร บทเรียน: กลุ่มตัวอย่างควรเป็นตัวแทนของประชากรทั้งหมดที่คุณกำลังตัดสินใจ

กรณีที่ 2 — การเปลี่ยนแปลงรูปแบบเงียบ ทีมงานดึงข้อมูลราคาจาก API ทุกวัน วันหนึ่ง ผู้ให้บริการ API เปลี่ยนสกุลเงินจาก USD เป็น EUR แต่ชื่อโดเมนยังคงเหมือนเดิม ข้อมูลถูกเก็บรวบรวมในหน่วยที่ไม่ถูกต้องเป็นเวลา 12 วัน 3,200 เส้นเสียหาย บทเรียน: ตรวจสอบความสอดคล้องของปริมาณและรูปแบบในข้อมูล API เป็นประจำ

กรณีที่ 3 — การรั่วไหลตั้งแต่เนิ่นๆ นักวิเคราะห์ได้รวมคอลัมน์ "เหตุผลในการปิดบัญชี" เมื่อรวบรวมข้อมูลสำหรับประมาณการ "การเลิกใช้งาน" คอลัมน์นี้ถูกเติมหลังจากที่ลูกค้าออกไปแล้วเท่านั้น แบบจำลองนี้ให้ความแม่นยำ 97% ในชุดทดสอบ ใช้งานไม่ได้ในการผลิตเนื่องจากคอลัมน์นั้นว่างเปล่าในเวลาคาดการณ์ บทเรียน: ถามคำถามแต่ละคอลัมน์ว่า "ฉันมีมันในขณะที่ทำนายหรือไม่"

เทมเพลตที่สามารถคัดลอกได้สี่แบบ

1) การแยกพจนานุกรมข้อมูล:

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

2) รหัสการสุ่มตัวอย่าง (สุ่ม, ทำซ้ำได้):

ฉันมีแพนด้า df เขียนโค้ดที่ดึงตัวอย่างสุ่มตัวแทน 5% จาก 200,000 แถว ใช้ Random_state=42 (เพื่อการทำซ้ำ) เพิ่มโค้ดเพื่อตรวจสอบว่าการแจกแจงคลาสของกลุ่มตัวอย่างคล้ายกับประชากร

3) คำถามเกี่ยวกับการสแกนรอยรั่ว:

ฉันจะให้รายการคอลัมน์นี้แก่คุณ เป้าหมายของฉันคือการทำนาย "ถูกยกเลิกหรือไม่" (0/1) สำหรับแต่ละคอลัมน์ ให้ประเมินว่าฉันจะได้รับมันจริงหรือไม่ในขณะที่คาดการณ์ และทำเครื่องหมายว่า "ปลอดภัย / น่าสงสัย / รั่วไหล" เขียนเหตุผลของคุณในหนึ่งประโยค คอลัมน์: [รายการ]

4) ร่างแบบสอบถามดึง SQL:

ฉันมีตาราง "คำสั่งซื้อ" และ "ลูกค้า" ใน PostgreSQL เขียนแบบสอบถาม JOIN ที่รวมคำสั่งซื้อในช่วง 90 วันที่ผ่านมาเข้ากับเมืองของลูกค้า แล้วส่งคืนจำนวนและจำนวนคำสั่งซื้อทั้งหมดต่อเมือง อธิบายตัวกรองวันที่และวิธีจัดการเมือง NULL ฉันจะเรียกใช้แบบสอบถามและตรวจสอบ

พรอมต์อ่อน / พรอมต์แข็งแกร่ง

พรอมต์ที่อ่อนแอ:

ดึงข้อมูลตัวอย่างที่ดีจากฐานข้อมูลนี้มาให้ฉัน

"ดี" นั้นคลุมเครือ ภาพวาดไหน ยุคไหน ขนาดไหน จุดประสงค์ไหนยังไม่ชัดเจน AI จะสร้างเฉพาะคำค้นหาทั่วไปที่อาจผิดเท่านั้น

พรอมต์อันทรงพลัง:

บทบาทของคุณ: ผู้ช่วย SQL ฉันมีตาราง "ธุรกรรม": รหัสคอลัมน์, customer_id, วันที่ (ประทับเวลา), จำนวนเงิน (ตัวเลข), ช่อง (ข้อความ: 'เว็บ'/'มือถือ') งาน: เขียนแบบสอบถามที่สามารถทำซ้ำได้ (กำหนดด้วย ORDER BY) ซึ่งส่งคืนแถวตัวแทน 10,000 แถวจากแต่ละช่องทางสำหรับปี 2024 วัตถุประสงค์: การวิเคราะห์เปรียบเทียบช่องทาง แสดงรายการสมมติฐานของคำถามของคุณ

ตาราง วัตถุประสงค์ ขนาด และความสามารถในการทำซ้ำมีความชัดเจน

ข้อผิดพลาดทั่วไป

  • ไม่ตั้งคำถามถึงความเป็นตัวแทนของกลุ่มตัวอย่าง ข้อมูลที่เข้าถึงได้ง่ายไม่ใช่ข้อมูลที่ถูกต้อง อคติในการเลือกบิดเบือนผลลัพธ์
  • การปรับความหมายของคอลัมน์ให้เป็น AI ทีมงานต้นทางรู้ความหมาย อย่าใช้การทำนายของ AI โดยไม่ยืนยัน
  • ไม่ติดตามการเปลี่ยนแปลงรูปแบบ/หน่วย API การเปลี่ยนแปลงแบบเงียบจะรวบรวมข้อมูลที่เสียหายเป็นเวลาหลายวัน
  • โดยไม่สนใจการรั่วไหลในขั้นตอนการเก็บรวบรวม หากไม่ถามคำถาม "ฉันมีมัน ณ เวลาที่คาดการณ์หรือไม่" เร็ว โมเดลก็จะให้ผลสำเร็จที่ผิดพลาด
  • การรวบรวมข้อมูลที่ไม่ได้รับอนุญาตหรือผิดกฎหมาย การละเมิด robots.txt เงื่อนไขการใช้งาน และ KVKK ถือเป็นความเสี่ยงร้ายแรง
เคล็ดลับ: เก็บ “การ์ดข้อมูล” หนึ่งหน้าไว้สำหรับแหล่งข้อมูลใหม่แต่ละแหล่ง ได้แก่ แหล่งที่มา วันที่ดึง จำนวนแถว ขอบเขตที่ทราบ และคอลัมน์ที่เสี่ยงต่อการรั่วไหล การ์ดใบนี้จะบันทึกคำถาม "ข้อมูลนี้คืออะไร" และความสามารถในการทำซ้ำหลายเดือนต่อมา

โดยสรุป

คุณภาพของการวิเคราะห์ถูกจำกัดด้วยคุณภาพของข้อมูลที่รวบรวม รู้จักแหล่งที่มา (ฐานข้อมูล, API, ไฟล์, สเครป) และสคีมาเป็นอย่างดี ตรวจสอบให้แน่ใจว่ากลุ่มตัวอย่างเป็นตัวแทนของประชากร กำจัดการรั่วไหลตั้งแต่วันแรกโดยถามแต่ละคอลัมน์ว่า "ฉันมีข้อมูลในขณะที่คาดการณ์หรือไม่" AI เป็นตัวเร่งที่ยอดเยี่ยมสำหรับงานสืบค้นและงานเอกสาร แต่มนุษย์เป็นผู้ตัดสินใจว่าจะรวบรวมข้อมูลใดและเป็นตัวแทนของข้อมูลนั้น ข้อจำกัดของอำนาจ กฎหมาย และการรักษาความลับต้องมาก่อนเสมอ

งานสมัคร

เลือกแหล่งข้อมูล (จากธุรกิจของคุณเองหรือสมมุติ) รับร่างพจนานุกรมข้อมูลจาก AI ด้วยเทมเพลต “การแยกพจนานุกรมข้อมูล” ด้านบน จากนั้นประเมินแต่ละคอลัมน์ด้วยตนเองเพื่อดูว่ามีการรั่วไหลหรือไม่ พยายามค้นหาคอลัมน์ที่น่าสงสัย/รั่วไหลอย่างน้อยหนึ่งคอลัมน์ และเขียนในหนึ่งประโยคว่าเหตุใดจึงมีความเสี่ยง

รายการตรวจสอบ

  • [ ] ฉันได้ยืนยันแหล่งข้อมูลและสคีมากับทีมต้นทางแล้วหรือยัง
  • [ ] ฉันได้ตรวจสอบแล้วว่ากลุ่มตัวอย่างเป็นตัวแทนของประชากรหรือไม่
  • [ ] ฉันเคยถามคำถามแต่ละคอลัมน์ว่า "ฉันจะได้มันหรือไม่ ณ เวลาที่ประมาณการ"
  • [ ] ฉันได้ทำการสุ่มตัวอย่างซ้ำได้ (เมล็ดคงที่) หรือไม่?
  • [ ] ฉันได้ตรวจสอบข้อจำกัดทางกฎหมาย/จริยธรรม (หน่วยงาน, robots.txt, KVKK) แล้วหรือยัง