शुरू करेंमुफ़्त में शुरू करें

n_neighbors ट्यून करना

n_neighbors KNN का सबसे महत्वपूर्ण पैरामीटर है। जब आपको डेटासेट में आउट्लायर की संख्या का अंदाज़ा नहीं होता (जो अक्सर होता है), तब आप उस thumb rule का इस्तेमाल नहीं कर सकते जो कहता है कि जब contamination 10% से कम हो तो 20 neighbors लें.

ऐसे मामलों में, आपको n_neighbors ट्यून करना होगा। इस प्रक्रिया का अभ्यास पिछले अभ्यास के females डेटासेट के ट्रांसफ़ॉर्म किए गए वर्शन पर कीजिए। यह females_transformed नाम से लोड है। KNN एस्टीमेटर, evaluate_outlier_classifier और evaluate_regressor फंक्शन भी लोड हैं.

स्मरण के लिए फंक्शनों के बॉडी नीचे दिए गए हैं:

def evaluate_outlier_classifier(model, data, threshold=.75):
    model.fit(data)

    probs = model.predict_proba(data)
    inliers = data[probs[:, 1] <= threshold]

    return inliers

def evaluate_regressor(inliers):
    X, y = inliers.drop("weightkg", axis=1), inliers[['weightkg']]
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=10, train_size=0.8)

    lr = LinearRegression()
    lr.fit(X_train, y_train)

    preds = lr.predict(X_test)
    rmse = root_mean_squared_error(y_test, preds)

    return round(rmse, 3)

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Anomaly Detection

पाठ्यक्रम देखें

अभ्यास निर्देश

  • n_neighbors के संभावित मानों की एक लिस्ट इसी क्रम में बनाएँ: 5, 10, 20
  • एक KNN मॉडल इंस्टैंशिएट करें और लूप में वर्तमान k को n_neighbors के रूप में सेट करें.
  • evaluate_outlier_classifier फंक्शन का उपयोग करके इनलायर्स निकालें.
  • evaluate_regressor से RMSE निकालें और scores में इसे स्टोर करें, जहाँ key के रूप में k और value के रूप में RMSE रखें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Create a list of values for n_neigbors
n_neighbors = [____, ____, ____]
scores = dict()

for k in n_neighbors:
    # Instantiate KNN with the current k
    knn = ____(____, n_jobs=-1)
    
    # Find the inliers with the current KNN
    inliers = ____(____, ____, .50)
    
    # Calculate and store RMSE into scores
    scores[____] = ____
    
print(scores)
कोड संपादित करें और चलाएँ