Menu
CoddyTech

שאריות

חלק מהיחידה סטטיסטיקה ללמידת מכונה במסלול ה-Machine Learning של Coddy. שיעור 35 מתוך 64.

בפרק הזה מעבירים קו מגמה דרך נתונים, חוזים בעזרתו ומדרגים אותו. הנה לאן הוא מוביל:

חמש עבודות כיסוח דשא כנקודות, דקות מול שטח הדשא, עם קו מגמה כתום שעובר דרכן וכוכב ירוק גדול על הקו שחוזה 50 דקות עבור מדשאה חדשה ששטחה 10

עד כמה קו מתאים לנתונים? שירות גינון מעריך שיידרשו 4.5 * area + 5 דקות לכל עבודה. כל פער אדום הוא שארית: הערך בפועל פחות הערך החזוי.

חמש עבודות הגינון והקו המשוער, עם פער אנכי אדום מכל נקודה אל הקו, המסומן ‎+6, -5, +3.5, -7 ו-‎+3.5

העלו בריבוע וחברו אותם כדי לחשב את ניקוד הקו:

area = np.array([4, 6, 9, 12, 15])
minutes = np.array([29, 27, 49, 52, 76])
residuals = minutes - (4.5 * area + 5)
print(residuals)
print((residuals ** 2).sum())

זה מדפיס:

[ 6.  -5.   3.5 -7.   3.5]
134.5

ריבועים מונעים מ־+6 ומ־-6 להתבטל זה בזה. ככל שסכום ריבועי השאריות הזה קטן יותר, כך הקו טוב יותר. מודל לומד באמצעות הקטנתו.

challenge icon

אתגר

בינוני

חברת הובלות מעריכה כמה זמן נמשכת העברה לפי מספר הארגזים. boxes ו-hours מכילים נתונים של שמונה העברות קודמות, והתוכנית קוראת שני קווים משוערים: slope1, intercept1, ואז slope2, intercept2.

  1. חשבו לכל קו ציון לפי סכום ריבועי השאריות שלו.
  2. הדפיסו את שני הסכומים, מעוגלים ל-2 ספרות אחרי הנקודה העשרונית, ואת הקו הטוב יותר, כפי שמוצג למטה.

עבור הקווים 0.16 * boxes + 0.8 ו-0.12 * boxes + 2.5:

Line 1 SSR: 0.57
Line 2 SSR: 4.1
Better: line 1

נסו בעצמכם

import numpy as np

boxes = np.array([10, 18, 25, 32, 40, 47, 55, 60])
hours = np.array([2.5, 3.5, 5.0, 5.5, 7.0, 8.0, 9.5, 10.0])
slope1 = float(input())
intercept1 = float(input())
slope2 = float(input())
intercept2 = float(input())

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה סטטיסטיקה ללמידת מכונה

תרגלו בעצמכם: קומפיילר Python אונליין