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

تقييم النموذج

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

هل النموذج جيد؟ تجيب دقته، أي نسبة صفوف الاختبار التي يصيبها، عن ذلك. قارنها بتخمين كسول:

عمودان للدقة على 50 قرضًا للاختبار: التخمين دائمًا بأن السداد سيكون في الموعد يحقق 0.78، بينما يحقق نموذج k-NN ‏0.88

عاد 78% من القروض التجريبية لهذه المكتبة في موعدها، لذا فإن الإجابة في الموعد في كل مرة تحقّق درجة 0.78. وهذا هو خط الأساس.

from sklearn.metrics import accuracy_score

pred = model.predict(X_test)
print(accuracy_score(y_test, pred))
print(model.score(X_test, y_test))
common = y_train.value_counts().index[0]
print((y_test == common).mean())

يطبع هذا 0.88، 0.88، 0.78. تتنبأ score وتحسب في استدعاء واحد؛ ويجيب خط الأساس دائمًا بالتصنيف الأكثر شيوعًا في بيانات التدريب.

لا يستحق النموذج مكانه إلا إذا تفوّق على خط الأساس.

challenge icon

التحدي

سهل

تراقب مستشعرات نحّال 160 خلية نحل في hives.csv؛ وتُبيّن swarm ما إذا كانت كل خلية قد تطلّعت. هل يمكن لمستشعر واحد أن يحذّرها؟ يقرأ البرنامج المُعطى اسم مستشعر ويدرّب نموذجًا باستخدام ذلك المستشعر وحده.

  1. اطبع دقة النموذج على بيانات الاختبار، مقربةً إلى 3 منازل عشرية.
  2. اطبع خط الأساس، مع تسمية الفئة التي يجيب بها دائمًا.
  3. اطبع ما إذا كان النموذج يتفوق عليه.

في منحل آخر وباستخدام weight_change_kg:

Model on weight_change_kg: 0.775
Always "no": 0.7
Beats the baseline: yes

جرّب بنفسك

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# صف واحد لكل خلية نحل: قراءات مستشعراتها، وما إذا كان النحل قد تطاير منها في سرب
hives = pd.read_csv("hives.csv")
sensor = input()
X = hives[[sensor]]
y = hives["swarm"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
model = KNeighborsClassifier()
model.fit(X_train, y_train)

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

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

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

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