ביחידה זו נלמד על שתי שיטות לפתרון בעיות סיווג: Linear Discriminant Analysis ו-Quadratic Discriminant Analysis (או בקיצור LDA ו-QDA).

LDA

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

ההסתברות שתצפית מסוימת שייכת לקבוצה \(k\) הינה:

\[p(Y=k|X=x)=\frac{\pi_kf_k(x)}{\sum_{i=1}^K{\pi_if_i(x)}}\]

בהנחת הנורמליות, אנו יכולים לבטא את פונקצית הצפיפות \(f_k(x)\) באמצעות נוסחאות הצפיפות הנורמלית, ולהציבן בנוסחה שלעיל.

על ידי מניפולציה זו, ניתן להגיע לנוסחה סגורה לביטוי \(p(Y=k|X=x)\).

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

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

lda_model = MASS::lda(formula, data)
qda_model = MASS::qda(formula, data)

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

lda_pred <- predict(appoint_lda, 
                    newdata = appointments)
qda_pred <- predict(appoint_qda,
                    newdata = appointments)
glimpse(lda_pred$posterior)
##  num [1:110527, 1:2] 0.868 0.857 0.86 0.812 0.852 ...
##  - attr(*, "dimnames")=List of 2
##   ..$ : chr [1:110527] "1" "2" "3" "4" ...
##   ..$ : chr [1:2] "FALSE" "TRUE"
glimpse(lda_pred$posterior[,2])
##  Named num [1:110527] 0.132 0.143 0.14 0.188 0.148 ...
##  - attr(*, "names")= chr [1:110527] "1" "2" "3" "4" ...
glimpse(qda_pred$posterior[,2])
##  Named num [1:110527] 0.102 0.144 0.1361 0.1902 0.0814 ...
##  - attr(*, "names")= chr [1:110527] "1" "2" "3" "4" ...

תרגיל

השוו בין שיטות qda, lda, והרגרסיה הלוגיסטית שבפרק הקודם. הציגו את מטריצת הבלבול עבור ערך threshold של 0.2, בהתייחס ל-test set.

הציגו את ה-ROC של שיטת הרגרסיה הלוגיסטית, ה-lda וה-qda על תרשים אחד. האם אתם מצליחים לזהות הבדלים?

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

מה השיטה המצביעה על הביצועים הטובים ביותר בזיהוי אנשים שהולכים לא-להגיע לפגישה?


בתרגיל הבא, יהיה עליכם ליישם את מה שלמדתם על בעיות סיווג בשני הפרקים האחרונים. קראו את הקובץ “WA_Fn-UseC_-Telco-Customer-Churn.csv” העוסק בנטישת לקוחות.

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

נתחו את טיב המודלים באמצעות test/train ובחינה של סוגי הטעויות השונות במטריצת בלבול, ובתרשים ROC.