आउटलायर का पता लगाना
अगले अभ्यासों में, आप K-means एल्गोरिदम से धोखाधड़ी (fraud) की भविष्यवाणी करेंगे और उन भविष्यवाणियों की तुलना सहेजे गए वास्तविक लेबल्स से करेंगे, ताकि अपने नतीजों का सेंस-चेक किया जा सके.
धोखाधड़ी वाली ट्रांज़ैक्शंस आम तौर पर वे ऑब्ज़र्वेशंस होती हैं जो क्लस्टर सेंट्रॉइड से सबसे दूर होती हैं। आप इस अभ्यास में यह करना और कट-ऑफ कैसे तय करना सीखेंगे। अगले अभ्यास में, आप नतीजों की जाँच करेंगे.
आपके पास स्केल की गई ऑब्ज़र्वेशंस X_scaled उपलब्ध हैं, और वैरिएबल y में स्टोर किए गए लेबल्स भी.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Fraud Detection
अभ्यास निर्देश
- स्केल किए गए डेटा और लेबल्स
yको train और test सेट में बाँटें. - 3 क्लस्टर्स वाला MiniBatch K-means मॉडल परिभाषित करें और उसे training डेटा पर fit करें.
- अपने test डेटा से क्लस्टर प्रीडिक्शंस लें और क्लस्टर सेंट्रॉइड्स प्राप्त करें.
- fraud और non-fraud के बीच की सीमा दूरी वितरण के 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