You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/he/2-Regression/1-Tools
localizeflow[bot] fb6bda5cad
[nl,he,vi] chore(i18n): sync translations
3 weeks ago
..
solution chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 8 months ago
README.md [nl,he,vi] chore(i18n): sync translations 3 weeks ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 8 months ago
notebook.ipynb 🌐 Update translations via Co-op Translator 1 year ago

README.md

התחילו עם Python ו-Scikit-learn למודלי רגרסיה

סיכום של רגרסיות בסקצ'נוט

סקצ'נוט מאת Tomomi Imura

חידון לפני ההרצאה

שיעור זה זמין בר!

מבוא

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

בשיעור זה תלמד כיצד:

  • להגדיר את המחשב שלך למשימות למידת מכונה מקומיות.
  • לעבוד עם מחברות Jupyter.
  • להשתמש ב-Scikit-learn, כולל התקנה.
  • לחקור רגרסיה ליניארית באמצעות תרגיל מעשי.

התקנות והגדרות

למידת מכונה למתחילים - התקן את הכלים כדי לבנות מודלי למידת מכונה

🎥 לחצו על התמונה למעלה לסרטון קצר שעובר על הגדרת המחשב שלך ללמידת מכונה.

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

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

  2. התקן Visual Studio Code. ודא שיש לך Visual Studio Code מותקן במחשבך. עקוב אחר ההוראות כדי להתקין את Visual Studio Code להתקנה בסיסית. בקורס זה תשתמש בפייתון ב-Visual Studio Code, לכן ייתכן ותרצה להתעדכן כיצד להגדיר את Visual Studio Code לפיתוח Python.

    התוודע לפייתון על ידי עבודה דרך אוסף זה של מודולים ללמידה

    התקן Python עם Visual Studio Code

    🎥 לחצו על התמונה למעלה לסרטון: שימוש בפייתון ב-VS Code.

  3. התקן Scikit-learn, על ידי ביצוע הוראות אלה. מאחר ואתה צריך לוודא שאתה משתמש בפייתון 3, מומלץ להשתמש בסביבה וירטואלית. שים לב, אם אתה מתקין את הספרייה הזו על Mac M1, קיימות הוראות מיוחדות בעמוד המקושר לעיל.

  4. התקן Jupyter Notebook. תצטרך להתקין את חבילת Jupyter.

סביבת הפיתוח ללמידת מכונה שלך

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

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

למידת מכונה למתחילים - התקן מחברות Jupyter כדי להתחיל לבנות מודלי רגרסיה

🎥 לחצו על התמונה למעלה לסרטון קצר שעובר על התרגיל הזה.

תרגיל - עבודה עם מחברת

בתיקייה זו תמצא את הקובץ notebook.ipynb.

  1. פתח את notebook.ipynb ב-Visual Studio Code.

    שרת Jupyter יתחיל עם Python 3+ פעיל. תמצא חלקים במחברת שניתן להריץ, קטעי קוד. תוכל להריץ בלוק קוד על ידי בחירת סמל הדומה לכפתור הפעלה.

  2. בחר את סמל md והוסף קצת markdown, ואת הטקסט הבא # Welcome to your notebook.

    לאחר מכן, הוסף קוד פייתון.

  3. הקלד print('hello notebook') בבלוק הקוד.

  4. לחץ על החץ כדי להריץ את הקוד.

    תראה את הפלט המודפס:

    hello notebook
    

VS Code עם מחברת פתוחה

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

✅ חשוב לרגע עד כמה סביבה העבודה של מפתח ווב שונה מזו של מדען נתונים.

עלה והרץ עם Scikit-learn

עכשיו שפייתון מוגדרת בסביבה המקומית שלך, ואתה שולט במחברות Jupyter, בוא נרגיש נוח עם Scikit-learn (מבוטא sci כמו בscience). Scikit-learn מספקת API נרחב שיעזור לך לבצע משימות למידת מכונה.

על פי האתר שלהם, "Scikit-learn היא ספריית קוד פתוח ללמידת מכונה התומכת בלמידה מונחית ולמידה בלתי מונחית. היא גם מספקת כלים שונים להתאמת מודלים, קדם-עיבוד נתונים, בחירת מודל והערכה, ועוד שימושים רבים."

בקורס זה תשתמש ב-Scikit-learn וכלים נוספים לבניית מודלי למידת מכונה לביצוע מה שאנו קוראים 'משימות למידה מכונתית מסורתית'. נמנענו בכוונה מרשתות עצביות ולמידה עמוקה, שכן נושא זה מטופל טוב יותר בתכנית הלימודים הקרובה שלנו 'AI למתחילים'.

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

תרגיל - מחברת Scikit-learn שלך הראשונה

הדרכה זו הושתתה מדוגמת רגרסיה ליניארית באתר Scikit-learn.

למידת מכונה למתחילים - הפרויקט הראשון שלך ברגרסיה ליניארית בפייתון

🎥 לחצו על התמונה למעלה לסרטון קצר שעובר על התרגיל הזה.

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

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

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

בוא נתחיל במשימה זו.

ייבוא ספריות

למשימה זו נייבא כמה ספריות:

  • matplotlib. זהו כלי גרפים שימושי ונשתמש בו ליצירת תרשים קווי.
  • numpy. numpy היא ספרייה שימושית לטיפול בנתונים מספריים בפייתון.
  • sklearn. זו ספריית Scikit-learn.

ייבא כמה ספריות שיעזרו במשימות שלך.

  1. הוסף ייבוא על ידי הקלדת הקוד הבא:

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model, model_selection
    

    למעלה אתה מייבא את matplotlib, numpy ואת datasets, linear_model ו-model_selection מ-sklearn. model_selection משמשת לפיצול הנתונים לערכות אימון ובדיקה.

מערך הנתונים של סוכרת

מערך הנתונים diabetes הכלול מכיל 442 דגימות על סוכרת, עם 10 משתני תכונה, ביניהם:

  • גיל: גיל בשנים
  • bmi: אינדקס מסת גוף
  • לחץ דם ממוצע
  • s1 tc: תאי T (סוג של תאי דם לבנים)

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

כעת, טען את הנתונים X ואת היעד y.

🎓 זכור, זו למידה מונחית, ואנו זקוקים ליעד בשם 'y'.

בתא קוד חדש, טען את מערך הנתונים של סוכרת על ידי קריאה ל-load_diabetes(). הקלט return_X_y=True מציין ש-X יהיה מטריצת נתונים, ו-y יהיה יעד הרגרסיה.

  1. הוסף כמה פקודות הדפסה כדי להראות את צורת מטריצת הנתונים ואת הפריט הראשון שלה:

    X, y = datasets.load_diabetes(return_X_y=True)
    print(X.shape)
    print(X[0])
    

    מה שאתה מקבל בחזרה כתשובה, הוא טופל. אתה מייעד את שני הערכים הראשונים של הטופל ל-X ו-y בהתאמה. למד עוד על טופלים.

    ניתן לראות שמדובר בנתונים של 442 פריטים המכווצים במערכים של 10 אלמנטים:

    (442, 10)
    [ 0.03807591  0.05068012  0.06169621  0.02187235 -0.0442235  -0.03482076
    -0.04340085 -0.00259226  0.01990842 -0.01764613]
    

    ✅ חשוב לחשוב על הקשר בין הנתונים ליעד הרגרסיה. רגרסיה ליניארית חוזה קשרים בין תכונה X למשתנה היעד y. האם אתה יכול למצוא את היעד למערך הנתונים של סוכרת בתיעוד? מה מערך נתונים זה מדגים, בהתחשב ביעד?

  2. לאחר מכן, בחר חלק ממערך הנתונים לתצוגה על ידי בחירת העמודה השלישית במערך הנתונים. אפשר לעשות זאת באמצעות אופרטור : לבחירת כל השורות, ואז לבחור את העמודה השלישית לפי אינדקס (2). אפשר גם לשנות את צורת הנתונים למערך דו-ממדי - כפי שנדרש לציור גרפים - באמצעות reshape(n_rows, n_columns). אם אחד הפרמטרים הוא -1, המימד המתאים מחושב אוטומטית.

    X = X[:, 2]
    X = X.reshape((-1,1))
    

    ✅ בכל עת, הדפס את הנתונים כדי לבדוק את צורתם.

  3. עכשיו שיש לך נתונים מוכנים להציג, תוכל לבדוק האם מכונה יכולה לסייע בקביעת חלוקה הגיונית בין המספרים במערך הנתונים הזה. לשם כך, צריך לחלק את הנתונים (X) ואת היעד (y) לשטחי אימון ובדיקה. ל-Scikit-learn יש דרך פשוטה לעשות זאת; ניתן לחלק את נתוני הבדיקה בנקודה שנקבעה.

    X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
    
  4. עכשיו אתה מוכן לאמן את המודל שלך! טען את מודל הרגרסיה הליניארית ואמן אותו עם קבוצות האימון X ו-y שלך באמצעות model.fit():

    model = linear_model.LinearRegression()
    model.fit(X_train, y_train)
    

    ✅ model.fit() היא פונקציה שתראה בספריות רבות ללמידת מכונה כמו TensorFlow

  5. לאחר מכן, צור תחזית באמצעות נתוני הבדיקה, באמצעות הפונקציה predict(). זוהי הפונקציה שתשמש לציור הקו בין קבוצות הנתונים.

    y_pred = model.predict(X_test)
    
  6. כעת הגיע הזמן להראות את הנתונים בתרשים. Matplotlib הוא כלי שימושי מאוד למשימה זו. צור תרשים פיזור של כל נתוני הבדיקה X ו-y, והשתמש בתחזית כדי לצייר קו במקום המתאים ביותר, בין קבוצות הנתונים של המודל.

    plt.scatter(X_test, y_test,  color='black')
    plt.plot(X_test, y_pred, color='blue', linewidth=3)
    plt.xlabel('Scaled BMIs')
    plt.ylabel('Disease Progression')
    plt.title('A Graph Plot Showing Diabetes Progression Against BMI')
    plt.show()
    

    תרשים פיזור המציג נקודות נתונים סביב סוכרת

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

ברכות, בנית את מודל הרגרסיה הליניארית הראשון שלך, יצרת טיפול תחזיתי איתו, והצגת את זה בגרף!


🚀אתגר

צייר משתנה שונה ממערך הנתונים הזה. רמז: ערוך את השורה הזו: X = X[:,2]. בהתחשב ביעד של מערך הנתונים הזה, מה תוכל לגלות על התקדמות הסוכרת כמחלה?

חידון לאחר ההרצאה

סקירה ולמידה עצמית

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

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

משימה

מערך נתונים שונה


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