Menu
CoddyTech
flag Ar iconالعربيةdown icon

عتبة القرار

جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 17 من 58.

تعطي predict إجابة نعم عندما يتجاوز الاحتمال 0.5، وهو الحد الفاصل. لكن تفويت شاشة معيبة قد يكون أكثر كلفة من إلقاء نظرة ثانية. اخفض الحد الفاصل:

أربع عشرة شاشة هاتف على خط يوضح احتمال كونها معيبة: ستة مربعات معيبة وثماني نقاط سليمة. عند الحد الفاصل 0.5، يُكتشف 4 من أصل 6 أعطال مع إنذار كاذب واحد؛ وعند 0.3، تُكتشف الأعطال الستة كلها مع 4 إنذارات كاذبة

الإنذار الكاذب هو فحص سليم تم وضع علامة عليه. اختر حدّك الخاص باستخدام مقارنة:

proba = model.predict_proba(X_test)[:, 1]
flag = proba >= 0.3  # True: افحص هذه الشاشة

عند خفضه، يلتقط حالات حقيقية أكثر ويُطلق إنذارات كاذبة أكثر؛ وعند رفعه، يحدث العكس. الاحتمالات لا تتغير أبدًا، بل تتغير نقطة القطع فقط.

اختره بناءً على تكلفة كل خطأ.

challenge icon

التحدي

متوسط

تعيد شركة طيران حجز رحلات للمسافرين الذين يُرجّح أن تفوتهم رحلتهم المتصلة قبل أن يهبطوا حتى. يدرّب الكود التمهيدي نموذجًا على connections.csv ويقرأ عتبة.

  1. احصل على احتمالات فوات الرحلة المتصلة للمسافرين في مجموعة الاختبار.
  2. عند 0.5، ثم عند العتبة، احسب عدد المسافرين الذين أُعيد حجز رحلاتهم، وحالات فوات الرحلة الفعلية التي تم اكتشافها (من إجمالي الحالات)، وعمليات إعادة الحجز غير الضرورية.
  3. اطبع سطرًا لكل عتبة.

بالنسبة إلى شركة طيران أخرى، ومع 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())

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت