1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phát hiện bất thường với Python

Connected

Bài tập

Tinh chỉnh phương pháp tổng hợp

Khi đã tìm được số lượng láng giềng tối ưu, đến lúc tinh chỉnh method dùng để tổng hợp khoảng cách. Nếu n_neighbors là 10, mỗi điểm dữ liệu sẽ có mười khoảng cách đến các láng giềng gần nhất. KNN có ba phương pháp để tổng hợp các khoảng cách đó: largest, mean và median.

Hãy tìm phương pháp tốt nhất cho bộ dữ liệu females_transformed. Bộ ước lượng KNN, cùng các hàm evaluate_outlier_classifier và evaluate_regressor đã được nạp sẵn cho bạn.

Dưới đây là phần thân hàm để bạn nhắc lại:

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)

Hướng dẫn

100 XP
  • Lặp qua tích Descartes của n_neighbors và methods, khởi tạo KNN với biến tạm k và m.
  • Tìm các inlier bằng KNN hiện tại với ngưỡng 50%.
  • Tính RMSE và lưu kết quả vào scores với k, m làm khóa và RMSE làm giá trị.