Menu
CoddyTech

סיכום: תיקון סקייטבורד

חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 40 מתוך 58.

challenge icon

אתגר

בינוני

פארק סקייטבורד רוצה שמודל בעמדת ההשכרה יזהה לוחות שהוחזרו וזקוקים לתיקון. התוכנית קוראת את ערך k הגדול ביותר לבדיקה.

  1. הפרידו 25% מהשורות לשורות בדיקה (random_state=0).
  2. עבור כל k ב־ks, בצעו אימות צולב של k-NN על שורות האימון (cv=5). ציירו את הממוצעים כעמודות והדפיסו את ערך k הטוב ביותר.
  3. בצעו חיפוש רשת לעץ על פני depths עבור max_depth (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 אונליין