Machine Learning

آستانه با کمینه کردن هزینه‌ی موردانتظار کسب‌وکار

وقتی یک منفی کاذب ۵۰ برابر یک مثبت کاذب هزینه داره، آستانه‌ی درست رو روی هیچ منحنی استانداردی نمی‌بینی: هزینه‌ی کلِ موردانتظار رو مستقیماً روی validation کمینه می‌کنی.

کاربرد

تصمیم‌های نامتقارن: تقلبِ کشف‌نشده در برابر بررسی بیهوده، خرابیِ ازدست‌رفته در برابر نگهداری پیشگیرانه.

پیش‌نیازها

numpy, scikit-learn

Python
import numpy as np
from sklearn.metrics import confusion_matrix

COUT_FP = 10.0      # vérification manuelle inutile
COUT_FN = 500.0     # fraude passée inaperçue

proba_val = model.predict_proba(X_val)[:, 1]
seuils = np.linspace(0.01, 0.99, 99)

couts = []
for s in seuils:
    pred = (proba_val >= s).astype(int)
    tn, fp, fn, tp = confusion_matrix(y_val, pred).ravel()
    couts.append(fp * COUT_FP + fn * COUT_FN)

best = int(np.argmin(couts))
print(f"Seuil optimal coût : {seuils[best]:.2f}")
print(f"Coût attendu       : {couts[best]:,.0f}")
print(f"Coût au seuil 0.50 : {couts[49]:,.0f}")
# L'écart entre les deux lignes = argent laissé sur la table par défaut.

نتیجه

Seuil optimal coût : 0.08
Coût attendu       : 28,750
Coût au seuil 0.50 : 61,230
>>> float((proba_val >= 0.08).mean())   # part du flux vérifiée à ce seuil
0.214
Coût métierSeuilDécisionAsymétrie

اسنیپت‌های مرتبط

بازگشت به آزمایشگاه داده