Menu
CoddyTech

חיזוי באמצעות קו

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

קו מותאם הוא מכונת חיזוי קטנה: מזינים x חדש ומקבלים y בחזרה. גור כלבים נשקל משבוע 8 ועד שבוע 20:

weeks = np.array([8, 10, 12, 14, 16, 18, 20])
kg = np.array([3.1, 4.0, 5.2, 6.1, 7.0, 8.2, 9.1])
slope, intercept = np.polyfit(weeks, kg, 1)
new_weeks = np.array([15, 52])
print(np.round(slope * new_weeks + intercept, 1))

זה מדפיס [ 6.6 25.2]. שבוע 15 נמצא בתוך הנתונים. שבוע 52 לא נמצא בהם, והקו ממשיך לעלות זמן רב אחרי שהכלב מפסיק:

שבע שקילות משבוע 8 עד 20 על קו מותאם. הקו ממשיך בקו מקווקו לתוך אזור מוצל המסומן מחוץ לנתונים, ומגיע ל־25.2 ק״ג בשבוע 52, בעוד שעקומה מנוקדת של כלב אמיתי מתיישרת בסביבות 13 ק״ג

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

week = 52
print(week >= weeks.min() and week <= weeks.max())

הדבר מדפיס False.

challenge icon

אתגר

בינוני

נר נמדד מדי שעה בזמן שהוא בער, משעה 0 עד שעה 6: hours ו-height בס"מ. התוכנית קוראת את new_hours.

  1. התאימו קו שמנבא את height מתוך hours.
  2. הדפיסו את התחזית שלו עבור new_hours, מעוגלת ל-2 ספרות אחרי הנקודה העשרונית.
  3. הדפיסו האם new_hours נמצא בטווח שעות הנתונים, כולל שני הקצוות.

עבור הקלט 4.5:

Predicted height: 13.07 cm
Inside the data: yes

נסו בעצמכם

import numpy as np

hours = np.array([0, 1, 2, 3, 4, 5, 6])
height = np.array([20.0, 18.4, 17.1, 15.3, 13.9, 12.2, 10.8])
new_hours = float(input())

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

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

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

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