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

تنبؤات بنعم أو لا

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

يجيب هذا الفصل عن أسئلة بنعم أو لا باستخدام الاحتمالات. وينتهي بمرشح للرسائل المزعجة تنشئه، ويصنّف رسائل البريد الإلكتروني كما يلي:

ثماني رسائل بريد إلكتروني على شكل أشرطة تبيّن احتمال كونها رسائل مزعجة، من 0.02 للأم إلى 0.97 لـ WIN NOW. الأشرطة التي تتجاوز خطًا متقطعًا عند 0.5 باللون الأحمر: رسائل مزعجة

هل سيُلغى حجز المطعم؟ يتعلّم LogisticRegression ذلك من 60 حجزًا سابقًا: عدد الأيام التي تم فيها الحجز مسبقًا، وما إذا كان الحجز قد أُلغي (1) أو تم الاحتفاظ به (0):

ستون حجزًا ممثلة بنقاط عند 0 (تم الاحتفاظ به) و1 (أُلغي) مقابل عدد الأيام التي تم فيها الحجز مسبقًا، ومنحنى S برتقالي يرتفع من 0.07 إلى 0.93. يقرأ 0.09 عند 3 أيام و0.72 عند 40 يومًا

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(max_iter=1000)  # خطوات كافية لإكمال التعلّم
model.fit(X, cancelled)  # X: عدد الأيام المتبقية، عمود واحد
print(np.round(model.predict_proba([[3], [40]]), 2))

يطبع هذا:

[[0.91 0.09]
 [0.28 0.72]]

يحتوي صف كل حجز على احتمال الفئة 0، ثم احتمال الفئة 1. تحتفظ [:, 1] باحتمالات الفئة 1، أي الإلغاء.

تتخذ شكل S: لا تقل أبدًا عن 0 ولا تزيد على 1، كما ينبغي للاحتمالات.

challenge icon

التحدي

متوسط

يحجز نادٍ للطائرات الورقية ثلاث فترات للإطلاق غدًا. يحتوي kites.csv على بيانات 90 عملية إطلاق سابقة: wind_kmh، وflew، وتكون قيمته 1 إذا ارتفعت الطائرة الورقية في الهواء. يقرأ البرنامج سرعة الرياح المتوقعة لكل فترة في slots.

  1. درّب LogisticRegression (max_iter=1000) على سرعات الرياح.
  2. اطبع احتمال تحليق الطائرة الورقية في كل فترة، كنسبة مئوية لعدد صحيح.
  3. اطبع عدد الرحلات المتوقع: مجموع الاحتمالات (بمنزلة عشرية واحدة).

لنادٍ آخر:

6 km/h: 9% chance the kite flies
18 km/h: 64% chance the kite flies
30 km/h: 97% chance the kite flies
Expected flights: 1.7 of 3

جرّب بنفسك

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression

# 90 محاولة إطلاق سابقة: سرعة الرياح بوحدة km/h، وflew (1 إذا حلّقت الطائرة الورقية)
kites = pd.read_csv("kites.csv")
# فترات الإطلاق الثلاث غدًا، بحسب سرعة الرياح المتوقعة
winds = []
for i in range(3):
    winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})

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

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

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

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