시작하기무료로 시작하기

이상치 탐지

다음 연습 문제에서는 K-means 알고리즘으로 사기를 예측하고, 예측 결과를 저장된 실제 레이블과 비교해 결과를 검증해 볼 거예요.

사기 거래는 일반적으로 클러스터 중심에서 가장 멀리 떨어진 관측치로 표시됩니다. 이번 연습에서는 이를 수행하는 방법과 컷오프를 결정하는 방법을 배워요. 다음 연습에서 결과를 확인합니다.

스케일링된 관측치 X_scaled와 변수 y에 저장된 레이블이 제공됩니다.

이 연습은 강의의 일부입니다

Python으로 배우는 사기 탐지

강의 보기

연습 안내

  • 스케일링된 데이터와 레이블 y를 학습/테스트 세트로 분할하세요.
  • 클러스터 수를 3으로 한 MiniBatch K-means 모델을 정의하고, 학습 데이터에 학습시키세요.
  • 테스트 데이터에 대한 클러스터 예측을 얻고, 클러스터 중심점을 구하세요.
  • 사기와 비사기의 경계를 거리 분포의 상위 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
코드 편집 및 실행