عتبة القرار
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 17 من 58.
تعطي predict إجابة نعم عندما يتجاوز الاحتمال 0.5، وهو الحد الفاصل. لكن تفويت شاشة معيبة قد يكون أكثر كلفة من إلقاء نظرة ثانية. اخفض الحد الفاصل:
الإنذار الكاذب هو فحص سليم تم وضع علامة عليه. اختر حدّك الخاص باستخدام مقارنة:
proba = model.predict_proba(X_test)[:, 1]
flag = proba >= 0.3 # True: افحص هذه الشاشةعند خفضه، يلتقط حالات حقيقية أكثر ويُطلق إنذارات كاذبة أكثر؛ وعند رفعه، يحدث العكس. الاحتمالات لا تتغير أبدًا، بل تتغير نقطة القطع فقط.
اختره بناءً على تكلفة كل خطأ.
التحدي
متوسطتعيد شركة طيران حجز رحلات للمسافرين الذين يُرجّح أن تفوتهم رحلتهم المتصلة قبل أن يهبطوا حتى. يدرّب الكود التمهيدي نموذجًا على connections.csv ويقرأ عتبة.
- احصل على احتمالات فوات الرحلة المتصلة للمسافرين في مجموعة الاختبار.
- عند 0.5، ثم عند العتبة، احسب عدد المسافرين الذين أُعيد حجز رحلاتهم، وحالات فوات الرحلة الفعلية التي تم اكتشافها (من إجمالي الحالات)، وعمليات إعادة الحجز غير الضرورية.
- اطبع سطرًا لكل عتبة.
بالنسبة إلى شركة طيران أخرى، ومع 0.25:
Threshold 0.5: 9 rebooked, 7 of 15 misses caught, 2 needless rebookings
Threshold 0.25: 21 rebooked, 13 of 15 misses caught, 8 needless rebookingsجرّب بنفسك
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# صف واحد لكل راكب: مدة التوقف وتأخر الرحلة القادمة بالدقائق، وتغيير مبنى الركاب (1 أو 0)، والأمتعة المسجلة؛ قيمة missed هي 1 أو 0
trips = pd.read_csv("connections.csv")
features = ["layover_min", "delay_min", "terminal_change", "checked_bags"]
X_train, X_test, y_train, y_test = train_test_split(trips[features], trips["missed"], test_size=0.25, random_state=0)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
threshold = float(input())
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت