مسارات المعالجة
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 45 من 58.
تأتي الجداول الحقيقية بفجوات وكلمات ومقاييس مختلفة. يبني هذا الفصل كائنًا واحدًا ينظّفها ويتنبأ بها، وهو مسار معالجة:
ابدأ بخطوات صغيرة: تقوم make_pipeline بربط أداة تحجيم ونموذج:
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(StandardScaler(), KNeighborsClassifier())
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))بالنسبة إلى 200 عملية لحام اختبارية، قوية أو ضعيفة، يطبع هذا 0.86، مقارنةً بـ 0.74 دون تحجيم.
تتعلّم fit كيفية التحجيم من صفوف التدريب، ثم تُدرّب النموذج. ويُحجَّم كل صف لاحق بالطريقة نفسها تلقائيًا.
التحدي
متوسطتقرر شركة بالونات كل مساء ما إذا كان الغد يومًا للطيران. يطبّق البرنامج المبدئي التحجيم يدويًا: دقة الاختبار جيدة، لكن التوقعات لا تُحوَّل أبدًا إلى المقياس نفسه، لذا يقول yes مهما كان الطقس.
- استبدله بخط معالجة يتضمن مُقياسًا ثم خوارزمية k-NN، ودرّبه على صفوف التدريب.
- اطبع دقته على الاختبار واحكم على التوقع باستخدامه.
شركة أخرى، اليوم 20، 32، 7000، 9:
Test accuracy: 0.880
Flying day: noجرّب بنفسك
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# أيام سابقة في شركة مناطيد: يوم مناسب للطيران (1) أو غير مناسب (0)
days = pd.read_csv("balloons.csv")
X = days[["wind_kmh", "gusts_kmh", "visibility_m", "passengers"]].to_numpy()
y = days["flying_day"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# توقعات الغد: سرعة الرياح، هبّات الرياح، مدى الرؤية، الركاب الذين حجزوا
day = np.array([[float(input()), float(input()), float(input()), float(input())]])
# تحجيم البيانات يدويًا: تبدو النتيجة جيدة، لكن بيانات التوقعات لا تخضع للتحجيم مطلقًا
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_scaled, y_train)
print(f"Test accuracy: {model.score(X_test_scaled, y_test):.3f}")
if model.predict(day)[0] == 1:
print("Flying day: yes")
else:
print("Flying day: no")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
1نموذجك الأول
التعلّم من الأمثلةمجموعتا التدريب والاختبارالملاءمة والتنبؤتقييم النموذجمراجعة: فارز البذور10مسارات المعالجة
مسارات المعالجةالأعمدة المختلطةتعويض القيم المفقودة ضمن مسار المعالجةضبط مسار المعالجةمراجعة: تنظيف البيانات والتنبؤتدرّب بنفسك: مترجم Python عبر الإنترنت