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

مراجعة: إصلاح ألواح التزلج

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

challenge icon

التحدي

متوسط

يريد مكتب التأجير في حديقة تزلج نموذجًا يكتشف ألواح التزلج المُعادة التي تحتاج إلى إصلاح. يقرأ البرنامج أكبر قيمة لـ k لتجربتها.

  1. افصل 25% من الصفوف للاختبار (random_state=0).
  2. لكل قيمة k في ks، أجرِ تحققًا متقاطعًا لـ k-NN على صفوف التدريب (cv=5). اعرض المتوسطات على شكل أعمدة واطبع أفضل قيمة لـ k.
  3. ابحث شبكيًا عن أفضل قيمة لـ max_depth للشجرة ضمن depths (cv=5، random_state=0) واطبع الأفضل.
  4. يفوز المتوسط الأعلى: اطبع Winner: k-NN أو Winner: tree مع دقة الاختبار الخاصة به.

لحديقة أخرى ومع 13:

Best k: 13 (mean 0.785)
Best depth: 5 (mean 0.763)
Winner: k-NN, test accuracy 0.822

يصف Coddy بعد ذلك مخططك. ويبدو مخططهم هكذا:

أعمدة بعنوان Skateboard Repairs: Accuracy by k، عمود واحد لكل قيمة k من 1 إلى 13، والمحور من 0.6 إلى 0.9. تتذبذب قرب 0.72 للقيم الصغيرة لـ k، ثم ترتفع إلى 0.785 عند k = 13

جرّب بنفسك

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier

# أكبر قيمة لـ k سنجرّبها، مثل 15
max_k = int(input())

# صف واحد لكل لوح تزلج أُعيد: عدد مرات التأجير منذ آخر صيانة له، ودرجات التآكل من 0 إلى 10
# والتشققات في سطح اللوح؛ تعني القيمة 1 في repair أنه أُرسل إلى الورشة
boards = pd.read_csv("skateboards.csv")
features = ["rentals", "wheel_wear", "bearing_noise", "grip_wear", "truck_wobble", "deck_cracks"]
X = boards[features]
y = boards["repair"]
# كل ميزة هي عدد صغير أو درجة، لذا لا يحتاج k-NN إلى مقياس هنا
ks = list(range(1, max_k + 1, 2))
depths = [2, 3, 4, 5, 6, 7, 8]

fig, ax = plt.subplots()
ax.set_title("Skateboard Repairs: Accuracy by k")
ax.set_xlabel("k (neighbors)")
ax.set_ylabel("Mean CV accuracy")
ax.set_xticks(ks)
ax.set_ylim(0.6, 0.9)  # يبدأ عند 0.6 لإظهار الفروق الصغيرة

# اكتب الكود الخاص بك أدناه

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

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