1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 배우는 이상치 탐지

Connected

연습 문제

집계 방법 튜닝하기

최적의 이웃 수를 찾았다면, 이제 거리 집계를 위한 method를 튜닝할 차례예요. n_neighbors가 10이면, 각 데이터 포인트는 가장 가까운 이웃 10개까지의 거리 값을 갖게 됩니다. KNN은 이 거리들을 집계할 때 largest, mean, median의 세 가지 방법을 사용해요.

어떤 방법이 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)

지침

100 XP
  • n_neighbors와 methods의 데카르트 곱을 반복(iterate)하면서 k와 m 임시 변수를 사용해 KNN을 인스턴스화하세요.
  • 현재 KNN과 임계값 50%로 inlier를 찾으세요.
  • RMSE를 계산하고, k, m을 키로, RMSE를 값으로 하여 scores에 저장하세요.