이상 점수
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 37번째.
예 또는 아니요만으로는 행이 얼마나 이상한지 알 수 없습니다. score_samples는 모든 행에 점수를 부여합니다. 점수가 낮을수록 더 이상합니다. 약국의 처방전을 살펴보겠습니다.
forest = IsolationForest(random_state=0).fit(X)
rx["score"] = forest.score_samples(X)
print(rx.sort_values("score").head(3))가장 이상한 세 가지를 출력합니다:
pills refills price score
17 300 0 120.0 -0.881478
88 28 11 11.5 -0.708524
120 30 1 64.0 -0.700620어디서 자를지는 여러분의 선택입니다. 한 사람이 확인할 수 있는 행은 몇 개일까요? 순위를 매기려면 정렬하고, 기준값과 비교해 표시하세요.
챌린지
중급감사 담당자는 몇 건의 비용 청구만 검토할 시간이 있습니다. 시작 코드는 isolation forest를 학습하고, 프로그램은 n과 임계값을 읽습니다.
- 모든 청구 건의 점수를 새 열
score에 기록합니다. - 아래와 같이 가장 특이한 청구 건
n개를 가장 특이한 순서대로 출력합니다. - 임계값보다 낮은 점수를 받은 청구 건이 몇 개인지 출력합니다.
다른 회사의 경우, 2와 -0.6을 입력하면:
Most unusual claims:
C003: 1960 EUR, score -0.763
C040: 80 EUR, score -0.757
Below -0.6: 6 claims직접 해보기
import pandas as pd
from sklearn.ensemble import IsolationForest
# 경비 청구 건당 한 행: 금액, 영수증, 청구서를 제출한 시간, 출장 후 경과 일수
claims = pd.read_csv("claims.csv")
X = claims[["amount_eur", "items", "hour", "days_late"]]
n = int(input())
threshold = float(input())
# Isolation Forest에서 생성한 forest: 모든 청구 건으로 학습됨
forest = IsolationForest(random_state=0).fit(X)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러