카드 사기 감시
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 49번째.
신용협동조합의 카드 팀은 하루에 몇 건의 결제만 직접 확인할 수 있습니다. 지난달에는 사기 결제가 가장자리에서 나타났습니다:
하지만 고객이 몇 주 후에 불만을 제기하기 전까지는 누구도 사기를 알아채지 못합니다. 따라서 두 탐지기가 레이블이 전혀 없는 결제 중에서 이상한 결제를 찾아야 합니다.
이번 주의 불만 사항이 접수되었습니다. 어떤 탐지기가 더 많이 잡아냈을까요?
챌린지
어려움이번 주의 결제 400건은 payments.csv에 있으며, 프로그램은 팀이 확인할 수 있는 건수인 budget을 읽습니다.
- 네 가지 특성의 스케일을 조정합니다.
- 격리 포레스트(
random_state=0)와 로컬 이상치 요인(이웃 20개)을 사용해budget건의 결제를 이상치로 표시합니다. - 그런 다음에야
fraud를 확인합니다. 각 목록이 적발한 건수와 팀이 확인한 정상 결제 건수를 출력합니다. - 더 많이 적발한 목록을 팀에 전달합니다.
the isolation forest's list또는the local outlier factor's list를 전달하고, 같으면either list, they tie를 전달합니다.
지난달 데이터에서 예산이 10건인 경우:
Budget: 10 of 300 payments
Isolation forest: caught 6 of 12 frauds, 4 honest payments checked
Local outlier factor: caught 10 of 12 frauds, 0 honest payments checked
Send the team: the local outlier factor's list직접 해보기
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
# 카드 결제 한 건당 한 행이며, 고객이 몇 주 후에 신고한 결제는 fraud가 1입니다
payments = pd.read_csv("payments.csv")
features = ["amount_eur", "hour", "km_from_home", "minutes_since_last"]
# 팀이 수동으로 확인할 수 있는 결제 건수
budget = int(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러