1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Detekce anomálií v Pythonu

Connected

cvičení

Ladění parametru n_neighbors

n_neighbors je nejdůležitější parametr modelu KNN. Pokud si nejsi jistý/á, kolik odlehlých hodnot dataset obsahuje – a to se stává často –, nemůžeš spoléhat na pravidlo, které doporučuje 20 sousedů při kontaminaci pod 10 %.

V takových případech je potřeba n_neighbors naladit. Procvič si tento postup na transformované verzi datasetu females z předchozího cvičení, která je načtená jako females_transformed. K dispozici máš také estimátor KNN a funkce evaluate_outlier_classifier a evaluate_regressor.

Pro připomenutí jsou zde těla obou funkcí:

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)

Pokyny

100 XP
  • Vytvoř seznam možných hodnot pro n_neighbors v tomto pořadí: 5, 10, 20
  • Vytvoř instanci modelu KNN a nastav hodnotu n_neighbors na aktuální k v cyklu.
  • Najdi inliery pomocí funkce evaluate_outlier_classifier.
  • Vypočítej RMSE pomocí evaluate_regressor a výsledek ulož do scores, kde klíčem bude k a hodnotou příslušné RMSE.