כיצד ליישם רגרסיה לינארית ללימוד מכונה?



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

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

מהי רגרסיה?

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





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

רגרסיה ליניארית לדוגמא בלימוד מכונה - edureka

סוגי רגרסיה

להלן סוגים של רגרסיה.



  1. רגרסיה לינארית פשוטה
  2. רגרסיה פולינומית
  3. תמיכה ברגרסיה וקטורית
  4. רגרסיה של עץ ההחלטות
  5. רגרסיה אקראית של יער

רגרסיה לינארית פשוטה

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

רגרסיה פולינומית

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

תמיכה ברגרסיה וקטורית

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



רגרסיה של עץ ההחלטות

ל יכול לשמש גם לרגרסיה וגם . במקרה של רגרסיה, אנו משתמשים באלגוריתם ID3 (Dichotomiser Iterative 3) כדי לזהות את הצומת המפצל על ידי הקטנת סטיית התקן.

רגרסיה אקראית של יער

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

מהי רגרסיה לינארית?

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

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

טרמינולוגיות רגרסיה לינאריות

את המינוחים הבאים חשוב להכיר לפני שעוברים לאלגוריתם הרגרסיה הליניארית.

פונקציית עלות

קו ההתאמה הטובה ביותר יכול להיות מבוסס על המשוואה הליניארית המפורטת להלן.

  • המשתנה התלוי שיש לחזות מסומן על ידי Y.
  • קו שנוגע בציר ה- y מסומן על ידי היירוט b0.
  • באחדהוא שיפוע הקו, x מייצג את המשתנים הבלתי תלויים הקובעים את החיזוי של Y.
  • השגיאה בתחזית שהתקבלה מסומנת באמצעות e.

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

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

זה ידוע גם בשם MSE (Mean Squared Error), ואנו משנים את הערכים של b0ו באחדכך שערך MSE יוסדר במינימום.

איטרטיבי פיבוני c ++

ירידת שיפוע

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

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

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

יתרונות וחסרונות

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

מקרי שימוש ברגרסיה לינארית

  • חיזוי מכירות

  • ניתוח סיכונים

  • יישומי דיור לחיזוי המחירים וגורמים אחרים

  • יישומי מימון לחיזוי מחירי מניות, הערכת השקעות וכו '.

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

עם זאת בחשבון, בואו נסתכל על מקרה שימוש.

מקרה שימוש - יישום רגרסיה לינארית

התהליך מתרחש בשלבים הבאים:

  1. טוען את הנתונים
  2. חקר הנתונים
  3. חיתוך הנתונים
  4. הרכבת ופיצול נתונים
  5. צור את המודל
  6. הערך את הדיוק

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

1. טעינת הנתונים

אנו יכולים להתחיל עם מערך נתוני הסוכרת הבסיסי שכבר קיים במודול ערכות הנתונים sklearn (scikit-learning) כדי להתחיל את דרכנו ברגרסיה לינארית.

מ- sklearn ייבוא ​​מערכי נתונים מחלה = datasets.load_diabetes () הדפס (מחלה)

תְפוּקָה:

2. חקר הנתונים

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

הדפס (מחלה.מפתחות ())

תְפוּקָה:

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

למצוא את המספר הגדול ביותר במערך Java
יבוא קהה כמו np disease_X = disease.data [:, np.newaxis, 2] הדפס (מחלה_X)

תְפוּקָה:

לאחר שלב זה, נחלק את הנתונים לרכבת ולמבחן.

3. פיצול הנתונים

disease_X_train = disease_X [: - 30] disease_X_test = disease_X [-20:] disease_Y_train = disease.target [: - 30] disease_Y_test = disease.target [-20:]

החלק הבא כולל יצירת המודל, שיכלול ייבוא ​​מודל ליניארי מ- sklearn.

4. יצירת המודל

מ- sklearn יבוא linear_model reg = linear_model.LinearRegression () reg.fit (disease_X_train, disease_Y_train) y_predict = reg.predict (disease_X_test)

כדי להעריך את דיוק המודל, נשתמש בשגיאת הריבוע הממוצעת מ- scikit-learning.

5. הערכה

דיוק = ממוצע_ריבוע_מחלה (מחלה_י_בדיקה, חיזוי_) הדפסה (דיוק) משקולות = reg.coef_ יירוט = הדפסה רג'ית_ (משקולות, יירוט)

תְפוּקָה:

כדי להיות ברור יותר כיצד נראות נקודות הנתונים בגרף, בואו נתווה גם את הגרפים.

ייבא matplotlib.pyplot כ- plt plt.scatter (מחלה_X_test, מחלה_Y_test) plt.plot (מחלה_X_test, y_predict) plt.show ()

תְפוּקָה:

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

# בצע שינוי קטן בקוד שלמעלה, והסר את קוד העלילה כדי למנוע שגיאות disease_X = disease.data

תְפוּקָה:

זה מביא אותנו לסוף מאמר זה בו למדנו על רגרסיה לינארית ללימוד מכונה. אני מקווה שברור לך עם כל מה ששותף איתך במדריך זה.

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

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