כיצד לבצע רגרסיה לוגיסטית בפייתון?



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

רגרסיה לוגיסטית בפייתון היא טכניקת ניתוח ניבוי. הוא משמש גם ב- Machine Learning לבעיות סיווג בינאריות. בבלוג זה נעבור על הנושאים הבאים להבנת רגרסיה לוגיסטית בפייתון:

  1. מהי רגרסיה?
  2. רגרסיה לוגיסטית בפייתון
  3. רגרסיה לוגיסטית לעומת רגרסיה לינארית
  4. השתמש במקרים
  5. הפגנה

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





מהי רגרסיה?

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

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



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

ניתוח מנבא את התוצאה במשתנה בינארי שיש לו רק שתי תוצאות אפשריות.



רגרסיה לוגיסטית בפייתון

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

המשתנה התלוי הוא קָטֵגוֹרִי בטבע. משתנה תלוי מכונה גם משתנה יעד והמשתנים הבלתי תלויים נקראים מנבאים .

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

אנו משתמשים ב- פונקציה / עקומה של Sigmoid לחזות את הערך הקטגורי. ערך הסף קובע את התוצאה (win / הפסד).

משוואת רגרסיה לינארית: y = β0 + β1X1 + β2X2…. + βnXn

  • Y מייצג את המשתנה התלוי שצריך לחזות.
  • β0 הוא יירוט ה- Y, ​​שהוא בעצם הנקודה בקו הנוגע בציר ה- y.
  • β1 הוא שיפוע הקו (השיפוע יכול להיות שלילי או חיובי, בהתאם ליחס בין המשתנה התלוי למשתנה הבלתי תלוי.)
  • X מייצג כאן את המשתנה הבלתי תלוי המשמש לחיזוי הערך התלוי שלנו.

פונקציה Sigmoid: p = 1/1 + ה-Y

החל פונקציית sigmoid על משוואת הרגרסיה הליניארית.

רגרסיה לוגיסטית בפיתון-אדוריקה

משוואת רגרסיה לוגיסטית: p = 1/1 + ה- (β0 + β1X1 + β2X2 .... + βnXn)

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

סוגי רגרסיה לוגיסטית

ליצור Java מחרוזת אקראית
    • רגרסיה לוגיסטית בינארית - יש לה רק שתי תוצאות אפשריות. דוגמא- כן או לא
    • רגרסיה לוגיסטית רב-נומית - יש לה שלוש קטגוריות סמליות או יותר. דוגמא - חתול, כלב, פיל.
    • רגרסיה לוגיסטית סדירה - יש לה שלוש קטגוריות סדירות או יותר, כלומר סדירות שהקטגוריות יהיו בסדר. דוגמה - דירוג משתמשים (1-5).

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

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

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

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

השתמש במקרים

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

חיזוי מזג אוויר

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

קביעת מחלה

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

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

הַדגָמָה

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

איסוף מידע

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

ייבוא ​​פנדות כ- pd ייבוא ​​מטומטם כ- np יבוא seaborn כמו sns ייבוא ​​matplotlib.pyplot כ- plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') הדפס (df.head (5))

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

ניתוח נתונים

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

sns.countplot ('בית', hue = 'WINorLOSS', data = df) plt.show ()

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

התגוששות נתונים

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

כיצד להכריז על משתנה מופע ב - Java
הדפס (df.isnull (). סכום ())

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

בדוק ונתוני רכבת

לצורך ביצוע המודל הנתונים מפוצלים לנתוני הבדיקה ונתוני הרכבת. הנתונים מפוצלים באמצעות ה- רכבת_בדיקה_פיצול . הנתונים כאן מפוצלים ביחס 70:30.

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

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

מ- sklearn.model_selection יבוא train_test_split מ- sklearn.linear_model יבוא LogisticRegression מ- sklearn.metrics יבוא סיווג_דוח מ- sklearn.metrics יבוא confusion_matrix, accuracy_score x = df.drop ('בית', ציר = 1) y = df ['דף הבית'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) התחזיות = logmodel.predict (x_test) הדפס (חיזוי סיווג (y_test,) הדפס (confusion_matrix (y_test, חיזויים)) הדפס (precision_score (y_test, חיזויים))

דוח סיווג:

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

דיוק ציון פירושו הרמה עד אליה החיזוי המדויק מדויק. הדיוק למשחק ביתי הוא 0.62 ובשביל משחק החוץ הוא 0.58 .

לִזכּוֹר הוא הסכום אליו יכול המודל לחזות את התוצאה. נזכר במשחק ביתי הוא 0.57 ולמשחק חוץ זה 0.64 . ציוני F1 ותמיכה הם כמות הנתונים שנבדקו לצורך התחזיות. במערך הנתונים של ה- NBA הנתונים שנבדקו למשחק ביתי הם 1662 ובשביל משחק החוץ הוא 1586 .

מטריצת בלבול:

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

מפת חום של מטריצת בלבול:

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

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, predictions))) plt.show ()

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

  • מבין כל התחזיות, המסווג ניבא כן בסך הכל 1730 הפעמים, מתוכם 1012 היו בפועל כן.
  • מתוך כל התחזיות, המסווג חזה לא בסך הכל 1518 פעמים, מתוכם 944 היו בפועל לא.

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

ציון דיוק:

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

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

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

כמו כן, בדוק את הבלוגים השונים של Data-Science בפלטפורמת edureka כדי לשלוט במדעני הנתונים שבך.

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