عدة فئات
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 19 من 58.
model = LogisticRegression(max_iter=1000)
model.fit(X, kind) # X: القطر، الوزن؛ kind: ليمون أو ليمون أخضر أو برتقال
print(model.classes_)
print(np.round(model.predict_proba([[6.7, 144]]), 2))
print(model.predict([[6.7, 144]]))يطبع هذا:
['lemon' 'lime' 'orange']
[[0.61 0. 0.39]]
['lemon']يحتوي كل صف على احتمال لكل فئة، وفق ترتيب classes_، ويكون مجموعها 1. تختار predict القيمة الأكبر.
إذن، يوضّح النموذج مدى ثقته: 61% لليمون، وهذا قرار غير محسوم ويستحق إعادة النظر.
التحدي
متوسطيصنّف تطبيق بودكاست الحلقات الجديدة ضمن الكوميديا أو الأخبار أو الجرائم الحقيقية. يدرّب الكود الابتدائي نموذج LogisticRegression على بيانات episodes.csv (المدة، والمتحدثون، وعدد مرات الضحك في الدقيقة)، ويقرأ حلقة جديدة في episode، وهو جدول من صف واحد.
أكمل describe(episode):
- اطبع احتمال كل نوع من البرامج، بترتيب
model.classes_، كنسبة مئوية مقربة إلى عدد صحيح. - أعِد النوع الأكثر احتمالًا.
لحلقة من تطبيق آخر:
comedy: 12%
news: 70%
true crime: 18%
Best guess: newsجرّب بنفسك
import pandas as pd
from sklearn.linear_model import LogisticRegression
episodes = pd.read_csv("episodes.csv")
features = ["length_min", "speakers", "laughs_per_min"]
model = LogisticRegression(max_iter=1000)
model.fit(episodes[features], episodes["show_type"])
# يطبع احتمال كل نوع من العروض لحلقة واحدة (جدول من صف واحد)، ثم يعيد النوع الأكثر احتمالًا
def describe(episode):
# اكتب الكود الخاص بك هنا
return "unknown"
# لا تغيّر الأسطر أدناه: حلقة جديدة من المدخلات
length = float(input())
speakers = int(input())
laughs = float(input())
episode = pd.DataFrame({"length_min": [length], "speakers": [speakers], "laughs_per_min": [laughs]})
best = describe(episode)
print(f"Best guess: {best}")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت