เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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

ในแบบฝึกหัดถัดไป เราจะใช้ อัลกอริทึม K-means เพื่อทำนายการฉ้อโกง แล้วนำผลการทำนายไปเปรียบเทียบกับ label จริงที่บันทึกไว้ เพื่อตรวจสอบความถูกต้องของผลลัพธ์

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

ข้อมูลที่มีให้ได้แก่ค่าสังเกตที่ผ่านการ scale แล้ว X_scaled และ label ที่เก็บไว้ในตัวแปร y

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การตรวจจับการฉ้อโกงด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • แบ่งข้อมูลที่ scale แล้วและ label y ออกเป็นชุด train และ test
  • กำหนดโมเดล MiniBatch K-means ที่มี 3 คลัสเตอร์ แล้ว fit กับข้อมูล train
  • ดึงผลการทำนายคลัสเตอร์จากข้อมูล test และหาค่าเซนทรอยด์ของคลัสเตอร์
  • กำหนดเส้นแบ่งระหว่างการฉ้อโกงและไม่ฉ้อโกงที่ระยะห่าง 95% ขึ้นไปของการกระจายตัว

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Split the data into training and test set
X_train, X_test, y_train, y_test = ____(____, ____, test_size=0.3, random_state=0)

# Define K-means model 
kmeans = ____(n_clusters=____, random_state=42).fit(____)

# Obtain predictions and calculate distance from cluster centroid
X_test_clusters = ____.____(X_test)
X_test_clusters_centers = ____.____
dist = [np.linalg.norm(x-y) for x, y in zip(X_test, X_test_clusters_centers[X_test_clusters])]

# Create fraud predictions based on outliers on clusters 
km_y_pred = np.array(dist)
km_y_pred[dist >= np.percentile(dist, ____)] = 1
km_y_pred[dist < np.percentile(dist, ____)] = 0
แก้ไขและรันโค้ด