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

DBSCAN

ในแบบฝึกหัดนี้ เราจะลองใช้วิธีการจัดกลุ่มแบบอิงความหนาแน่น (density based clustering) ที่เรียกว่า DBSCAN เพื่อตรวจจับการฉ้อโกง ข้อดีของ DBSCAN คือไม่จำเป็นต้องกำหนดจำนวนคลัสเตอร์ล่วงหน้า และยังรับมือกับข้อมูลที่มีรูปร่างซับซ้อน (เช่น ข้อมูลที่ไม่ใช่ convex) ได้ดีกว่า K-means มาก คราวนี้เราจะไม่ใช้ outlier ของคลัสเตอร์เพื่อระบุการฉ้อโกง แต่จะหาคลัสเตอร์ที่เล็กที่สุดในข้อมูลแล้วกำหนดให้เป็นการฉ้อโกงแทน ชุดข้อมูลที่ผ่านการ scale แล้วคือ X_scaled ถูกเตรียมไว้ให้แล้ว ลองทำดูกันเลย!

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

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

ดูคอร์ส

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

  • Import DBSCAN
  • กำหนดโมเดล DBSCAN โดยตั้งค่าระยะห่างสูงสุดระหว่างสองตัวอย่างเป็น 0.9 และจำนวนการสังเกตขั้นต่ำในคลัสเตอร์เป็น 10 จากนั้น fit โมเดลกับข้อมูลที่ผ่านการ scale แล้ว
  • ดึง label ที่โมเดลทำนายไว้ ซึ่งก็คือหมายเลขคลัสเตอร์ที่ถูกกำหนดให้กับแต่ละการสังเกต
  • Print จำนวนคลัสเตอร์และ performance metrics ที่เหลือ

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

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

# Import DBSCAN
from sklearn.cluster import ____

# Initialize and fit the DBSCAN model
db = DBSCAN(eps=____, min_samples=____, n_jobs=-1).fit(____)

# Obtain the predicted labels and calculate number of clusters
pred_labels = ____.____
n_clusters = len(set(pred_labels)) - (1 if -1 in labels else 0)

# Print performance metrics for DBSCAN
print('Estimated number of clusters: %d' % ____)
print("Homogeneity: %0.3f" % homogeneity_score(labels, pred_labels))
print("Silhouette Coefficient: %0.3f" % silhouette_score(X_scaled, pred_labels))
แก้ไขและรันโค้ด