Menu
CoddyTech

מעקב אחר הונאות בכרטיסים

חלק מהיחידה למידה בלתי מונחית במסלול ה-Machine Learning של Coddy. שיעור 49 מתוך 51.

צוות הכרטיסים של איגוד אשראי יכול לבדוק ידנית רק כמה תשלומים ביום. בחודש שעבר, מקרי ההונאה הסתתרו בקצוות:

300 התשלומים בכרטיס בחודש שעבר, שעות היום לרוחב והסכום כלפי מעלה בסולם לוגריתמי: התשלומים הכשרים באפור ממלאים את אמצע שעות היום, צלבים אדומים מציינים 12 מקרי הונאה שדווחו, חלקם זעירים בלילה וחלקם גדולים מאוד בכל שעה

אבל איש אינו יודע שמדובר בהונאה עד שלקוח מתלונן, שבועות לאחר מכן. לכן שני גלאים צריכים למצוא את התשלומים החריגים בלי תוויות כלל.

התלונות של השבוע הגיעו. איזה גלאי היה מזהה יותר מהן?

challenge icon

אתגר

קשה

400 התשלומים של השבוע נמצאים ב־payments.csv; התוכנית קוראת כמה תשלומים הצוות יכול לבדוק, budget.

  1. תקנן את ארבעת המאפיינים.
  2. סמן budget תשלומים באמצעות Isolation Forest (random_state=0) ובאמצעות Local Outlier Factor (20 שכנים).
  3. רק עכשיו פתח את fraud: הדפס כמה תשלומים כל רשימה תפסה, וכמה תשלומים תקינים היא גרמה לצוות לבדוק.
  4. שלח לצוות את הרשימה שתפסה יותר: 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())

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה למידה בלתי מונחית

תרגלו בעצמכם: קומפיילר Python אונליין