مراقبة الاحتيال بالبطاقات
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 49 من 51.
لا يستطيع فريق البطاقات في اتحاد ائتماني التحقق يدويًا إلا من عدد قليل من المدفوعات يوميًا. في الشهر الماضي، اختبأت حالات الاحتيال عند الأطراف:
لكن لا أحد يعلم بوجود احتيال إلا بعد أن يشتكي أحد العملاء، بعد أسابيع. لذلك، يجب أن يكشف كاشفان عن المدفوعات الشاذة من دون أي تسميات على الإطلاق.
وصلت شكاوى هذا الأسبوع. أيُّ كاشف كان سيكتشف عددًا أكبر منها؟
التحدي
صعبمدفوعات هذا الأسبوع وعددها 400 موجودة في payments.csv؛ يقرأ البرنامج عدد المدفوعات التي يمكن للفريق التحقق منها، budget.
- قِس الميزات الأربع.
- علِّم
budgetمن المدفوعات باستخدام غابة العزل (random_state=0) وعامل القيم الشاذة المحلي (20 جارًا). - افتح
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())
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضيتدرّب بنفسك: مترجم Python عبر الإنترنت