การตรวจจับความผิดปกติ

การออกแบบ Machine Learning Workflows ด้วย Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

ความผิดปกติและค่าผิดเพี้ยน

แบบ Supervised

สองกลุ่มแสดงเป็นสีดำ มีจุดสีแดงกระจายอยู่รอบนอก

แบบ Unsupervised

สองกลุ่มแสดงเป็นสีดำ มีจุดสีดำกระจายอยู่รอบนอก

การออกแบบ Machine Learning Workflows ด้วย Python

ความผิดปกติและค่าผิดเพี้ยน

สองกลุ่มแสดงเป็นสีดำ มีจุดสีดำกระจายอยู่รอบนอก

  • คลาสใดคลาสหนึ่งพบได้น้อยมาก
  • เป็นกรณีสุดขีดของ dataset shift
  • ตัวอย่าง:
    • ความปลอดภัยทางไซเบอร์
    • การตรวจจับการฉ้อโกง
    • การต่อต้านการฟอกเงิน
    • การตรวจจับความผิดพลาด
การออกแบบ Machine Learning Workflows ด้วย Python

เวิร์กโฟลว์แบบ Unsupervised

สองกลุ่มสีดำ มีจุดสีดำกระจายอยู่รอบนอกและถูกวงกลมสีแดงล้อมรอบ

  • จะ fit อัลกอริทึมโดยไม่มี label ได้อย่างไร?
  • จะประเมินประสิทธิภาพได้อย่างไร?

ใช้ label จำนวนน้อยอย่างระมัดระวัง:

  • น้อยเกินไปสำหรับการเทรนโดยไม่ overfit
  • พอดีสำหรับการเลือกโมเดล
  • ให้ค่าประมาณความแม่นยำที่ไม่มีอคติ

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

การออกแบบ Machine Learning Workflows ด้วย Python
  • Outlier: จุดข้อมูลที่อยู่นอกช่วงของข้อมูลส่วนใหญ่

สองกลุ่มสีดำ มีจุดสีดำกระจายอยู่รอบนอก จุดที่อยู่ไกลที่สุดถูกวงกลมสีแดงล้อมรอบ

  • Local outlier: จุดข้อมูลที่อยู่ในบริเวณโดดเดี่ยวโดยไม่มีข้อมูลอื่นอยู่ใกล้

สองกลุ่มสีดำ มีจุดสีดำกระจายอยู่รอบนอก จุดโดดเดี่ยวระหว่างสองกลุ่มถูกวงกลมสีแดงล้อมรอบ

การออกแบบ Machine Learning Workflows ด้วย Python

Local outlier factor (LoF)

สองกลุ่มสีดำ มีจุดสีดำกระจายอยู่รอบนอก จุดหนึ่งที่อยู่ระหว่างสองคลาสถูกวงกลมสีแดงล้อมรอบ และเพื่อนบ้านที่ใกล้ที่สุดซึ่งอยู่ใกล้กลุ่มหนึ่งถูกวงกลมสีน้ำเงินล้อมรอบ

การออกแบบ Machine Learning Workflows ด้วย Python

Local outlier factor (LoF)

from sklearn.neighbors import 
   LocalOutlierFactor as lof
clf = lof()
y_pred = clf.fit_predict(X)
y_pred[:4]
array([ 1,  1,  1, -1])
clf.negative_outlier_factor_[:4]
array([-0.99, -1.02, -1.08 , -0.97])
confusion_matrix(
   y_pred, ground_truth)
array([[  5,  16],
       [  0, 184]])

กลุ่มเดิมที่มีจุดโดดเดี่ยว มีจุดจำนวนมากถูกวงกลมสีแดงล้อมรอบทั้งจากภายในกลุ่มและจุดโดดเดี่ยว

การออกแบบ Machine Learning Workflows ด้วย Python

Local outlier factor (LoF)

clf = lof(contamination=0.02)
y_pred = clf.fit_predict(X)
confusion_matrix(
   y_pred, ground_truth)
array([[  5,   0],
       [  0, 200]])

กลุ่มเดิมที่มีจุดโดดเดี่ยว มีเฉพาะจุดโดดเดี่ยวที่ถูกวงกลมสีแดงล้อมรอบ

การออกแบบ Machine Learning Workflows ด้วย Python

ไม่มี label ก็ทำได้!

การออกแบบ Machine Learning Workflows ด้วย Python

Preparing Video For Download...