انشر النموذج
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 54 من 58.
انتظرت بطاريق الاختبار طوال المشروع. أوائم خط المعالجة المضبوط على صفوف التدريب، ثم أقيّمه على بطاريق الاختبار مرة واحدة: الرقم الصادق.
ثم انظر أين يخطئ. يصنّف نموذج عيادة الحالات إلى سليم أو زكام أو إنفلونزا؛ الصفوف تمثل الحقيقة، والأعمدة تخميناته:
بطريق جديد هو جدول من صف واحد يحتوي على أعمدة التدريب. تحدد predict فئته، وتبيّن predict_proba(new).max() مدى الثقة: حصة الفئة الفائزة، أي نسبة الجيران المتفقين في k-NN.
التحدي
متوسطخط النهاية. model هو خط الأنابيب الذي ضبطته؛ يقرأ البرنامج الابتدائي بطريقًا جديدًا إلى new_penguin.
- درّب النموذج على صفوف التدريب. اطبع دقته على الاختبار (3 منازل عشرية) وعدد البطاريق في الاختبار التي سمّاها بشكل صحيح.
- ارسم مصفوفة الالتباس لتنبؤات الاختبار على
axواعرضها. - حدّد نوع البطريق الجديد ومدى ثقة النموذج، بالنسبة المئوية.
لمستعمرة في محطة أخرى:
Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)ومصفوفتها:
بعدها يعرض Coddy نتيجتك. قاس النجم من درس Meet the Penguins القيم 47.2 و18.0 و194 و3650، في دريم، وهي أنثى. شغّل برنامجك باستخدام بياناتها: ما نوعها؟
جرّب بنفسك
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import ConfusionMatrixDisplay
# مستعمرة البطاريق من Meet the Penguins، وخصائصها وتصنيفها
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
# من Prepare the Data: المساران
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])
# من Choose a Model and Tune the Winner: k-NN بقيمة k = 7
model = make_pipeline(prep, KNeighborsClassifier(n_neighbors=7))
# بطريق جديد من الميدان، في جدول من صف واحد بالأعمدة نفسها
new_penguin = pd.DataFrame({
"bill_length_mm": [float(input())],
"bill_depth_mm": [float(input())],
"flipper_length_mm": [float(input())],
"body_mass_g": [float(input())],
"island": [input()],
"sex": [input()],
})
fig, ax = plt.subplots()
ax.set_title("Test Penguins")
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت