בעיות סיווג הם בעיות supervised learning שבהם הlabels (תוויות) מוגבלות לסט סופי של ערכים.
בסיווג בינארי, מקובל לסמן את המחלקות באופנים הבאים:
בסיווג לא בינארי, מקובל להשתמש באחד מהאופציות הבאות לסימון המחלקות:
מערכת לזיהוי הונאות בכרטיסי אשראי:
במקרה זה x יכול להיות וקטור אשר מכיל את מאפייני העיסקה, כגון מחיר, שעה, ומיקום, ו y יקבל אחד משני ערכים:
מערכת לעיבוד כתב יד (OCR):
במקרה זה x יכול להיות לדוגמא תמונה של אות ו y יהיה שווה למחלקה אשר מייצגת את האות בתמונה:
החזאי האופטימאלי של הינו זה אשר מחזיר את ה y הכי סביר:
h∗(x)=yargmax p(y∣x=x)K-NN הינו אלגוריתם דיסקרימינטיבי לפתרון בעיות סיווג.
באלגוריתם זה החיזויים נעשים ישירות על פי המדגם באופן הבא:
בהינתן x מסויים:
נבחר את K הדגימות בעלות ה x(i) הקרובים ביותר ל x.
(לרוב נשתמש במרחק אוקלידי, אך ניתן גם לבחור פונקציות מחיר אחרות).ניתן להשתמש באלגוריתם זה גם לפתרון בעיות רגרסיה אם כי פתרון זה יהיה לרוב פחות יעיל. בבעיות רגרסיה ניתן למצע על התוויות במקום לבחור את תווית השכיחה.
עצי החלטה הם כלי נפוץ (גם מחוץ לתחום של מערכות לומדות) לקבלת החלטות על סמך אוסף של עובדות.
טרמינולוגיה:
נוכל להשתמש בעצי החלטה שכאלה לבניית חזאים. הדרך הנפוצה לגדיר את השאלות על הענפים של העץ הינם על ידי תנאים על רכיב יחיד של x. ספצפית:
היתרונות של השימוש בעץ החלטה כחזאי:
כיצד נוכל לבנות עץ החלטה על סמך מאגר של ריאליזציות שיש ברשותנו?
נתון:
שגיאת הסיווג (אשר המתקבלת בעבור חיזוי של הערך הכי סביר)
Q(p)=1−y∈{1,…,C}maxp(y)אינדקס Gini:
Q(p)=y∈{1,…,C}∑p(y)(1−p(y))אנטרופיה:
Q(p)(=H(p))=y∈{1,…,C}∑−p(y)log2p(y)נחשב את הפילוג האמפירי של התויות שהגיעו לכל עלה:
p^j,y=Nj1i∈Ij∑I{yi=y}הציון הכולל של העץ הינו הממוצע המשוקלל של חוסר ההומוגניות של העלים ביחס למספר הדגימות בכל עלה:
Qtotal=j∑NNjQ(p^j)נרצה שהפילוג בעלים של העץ יהיה כמה שיותר הומוגני, כלומר שמדד חוסר ההומוגניות יהיה נמוך.
כדי להקטין את ה- overfitting של העץ ניתן להשתמש ב- validation set על מנת לבצע pruning של העץ באופן הבא:
ניתן להשתמש בעצים גם לפתרון בעיות רגרסיה. במקרה של רגרסיה עם פונקציית מחיר של MSE, הבניה של העץ תהיה זהה מלבד שני הבדלים:
סטודנט נבון ניגש לבחור אבטיחים בסופרמרקט. ידוע כי זוהי רק תחילתה של עונת האבטיחים וקיים מספר לא מבוטל של אבטיחי בוסר. הסטודנט שם לב כי ניתן לאפיין את האבטיחים ע"פ ההד בהקשה וע"פ קוטר האבטיח. הסטודנט החליט למפות את ניסיון העבר שלו:
Radius | Echo | Sweetness | |
---|---|---|---|
0 | 8 | 1 | -1 |
1 | 10 | 2 | -1 |
2 | 5 | 5 | 1 |
3 | 7 | 3 | 1 |
4 | 7 | 4 | -1 |
5 | 10 | 4 | -1 |
6 | 11 | 4 | -1 |
7 | 7 | 5 | 1 |
הסטודנט מחזיק בידו אבטיח בעל הד הקשה בעוצמה 3 ורדיוס 8 ס"מ. על מנת לחזות האם האבטיח בידו מתוק או לא נבנה חזאי בעזרת K-NN.
נרכז בטבלה את החיזוי המשוערך לכל fold ולכל K:
point | Correct label | K=1 prediction | K=3 prediction | K=5 prediction | K=7 prediction |
---|---|---|---|---|---|
0 | -1 | ✓ -1 (nn=[1]) | ✓ -1 (nn=[1 3 4]) | ✓ -1 (nn=[1 3 4 5 7]) | ✓ -1 (nn=[1 3 4 5 7 6 2]) |
1 | -1 | ✓ -1 (nn=[5]) | ✓ -1 (nn=[5 0 6]) | ✓ -1 (nn=[5 0 6 3 4]) | ✓ -1 (nn=[5 0 6 3 4 7 2]) |
2 | 1 | ✓ 1 (nn=[7]) | ✓ 1 (nn=[7 4 3]) | ✗ -1 (nn=[7 4 3 0 5]) | ✗ -1 (nn=[7 4 3 0 5 1 6]) |
3 | 1 | ✗ -1 (nn=[4]) | ✗ -1 (nn=[4 7 0]) | ✗ -1 (nn=[4 7 0 2 1]) | ✗ -1 (nn=[4 7 0 2 1 5 6]) |
4 | -1 | ✗ 1 (nn=[3]) | ✗ 1 (nn=[3 7 2]) | ✗ 1 (nn=[3 7 2 5 0]) | ✓ -1 (nn=[3 7 2 5 0 1 6]) |
5 | -1 | ✓ -1 (nn=[6]) | ✓ -1 (nn=[6 1 4]) | ✓ -1 (nn=[6 1 4 3 7]) | ✓ -1 (nn=[6 1 4 3 7 0 2]) |
6 | -1 | ✓ -1 (nn=[5]) | ✓ -1 (nn=[5 1 4]) | ✓ -1 (nn=[5 1 4 3 7]) | ✓ -1 (nn=[5 1 4 3 7 0 2]) |
7 | 1 | ✗ -1 (nn=[4]) | ✓ 1 (nn=[4 2 3]) | ✗ -1 (nn=[4 2 3 5 0]) | ✗ -1 (nn=[4 2 3 5 0 6 1]) |
Avg. score | 3/8 | 2/8 | 4/8 | 3/8 |
בנה עץ החלטה המבוסס על קריטריון האנטרופיה, אשר בהינתן נתוני צבע שער, גובה, משקל, והשימוש בקרם הגנה, חוזה האם עתיד האדם להכוות מהשמש היוקדת.
סט דוגמאות הלימוד לצורך בניית העץ מוצג בטבלה הבאה:
Hair | Height | Weight | Lotion | Result (Label) |
---|---|---|---|---|
blonde | average | light | no | sunburned |
blonde | tall | average | yes | none |
brown | short | average | yes | none |
blonde | short | average | no | sunburned |
red | average | heavy | no | sunburned |
brown | tall | heavy | no | none |
brown | average | heavy | no | none |
blonde | short | light | yes | none |
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
Blonde | 1 | 4 | {42,42} | −21log21−21log21=1 |
Brown | 2 | 3 | {30,33} | −0log(0)−1log(1)=0 |
Red | 3 | 1 | {11,10} | −1log(1)−0log(0)=0 |
נחשב את הממוצע הממושקל של האנטופיה על שלושת העלים:
Qtotal=j∑NNjQ(p^j)=84⋅1+83⋅0+81⋅0=21נמשיך לשדה הבא.
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
Sort | 1 | 3 | {31,32} | −31log31−32log32=0.918 |
Average | 2 | 3 | {32,31} | −32log32−31log31=0.918 |
Tall | 3 | 2 | {20,22} | −0log(0)−1log(1)=0 |
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
Light | 1 | 2 | {21,21} | −21log21−21log21=1 |
Average | 2 | 3 | {31,32} | −31log31−32log32=0.918 |
Heavy | 3 | 3 | {31,32} | −31log31−32log32=0.918 |
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
No | 1 | 5 | {53,52} | −53log53−52log52=0.97 |
Yes | 2 | 3 | {30,33} | −0log(0)−1log(1)=0 |
המאפיין האופטימלי לפיצול הראשון הוא Hair.
Height | Weight | Lotion | Result |
---|---|---|---|
average | light | no | sunburned |
tall | average | yes | none |
short | average | no | sunburned |
short | light | yes | none |
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
Short | 1 | 2 | {21,21} | −21log21−21log21=1 |
Average | 2 | 1 | {10,11} | −0log(0)−1log(1)=0 |
Tall | 3 | 1 | {10,11} | −1log(1)−0log(0)=0 |
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
Light | 1 | 2 | {21,21} | −21log21−21log21=1 |
Average | 2 | 2 | {21,21} | −21log21−21log21=1 |
Heavy | 3 | 0 |
Leaf (j) | Nj | p^j | H(p^j) | |
---|---|---|---|---|
No | 1 | 2 | {22,20} | −1log(1)−0log(0)=0 |
Yes | 2 | 2 | {20,22} | −0log(0)−1log(1)=0 |
פיצול זה נותן אנטרופיה 0 ולכן הוא הפיצול האופטימאלי ואנו נבחר בו.
נתון המדגם הבא של ערכי תצפית של x=[x1,x2,x3]⊤ ותוויות y:
x1 | x2 | x3 | y | |
---|---|---|---|---|
1 | 1 | 1 | -1 | 1 |
2 | 1 | -1 | -1 | 1 |
3 | -1 | -1 | -1 | 1 |
4 | -1 | -1 | -1 | -1 |
5 | 1 | 1 | 1 | -1 |
נרצה לבנות עץ החלטה על מנת לחזות את y על סמך x. נרצה להשתמש במדד חוסר הומגניות חדש מסוג Square Root Gini אשר מוגדר באופן הבא:
Q(p)=y∑p(y)(1−p(y)1) בנו עץ מלא על סמך קריטריון זה. כמה nodes יש בעץ שמצאתם?
נתחיל מה root ונבדוק את שלושת ה nodes האפשריים תחת מדד השגיאה החדש:
Leaf (j) | Nj | p^j | Q(p^j) | |
---|---|---|---|---|
1 | 1 | 3 | {32,31} | 23231=0.94 |
-1 | 2 | 2 | {21,21} | 22121=1 |
נשים לב ש node זה נותן חלוקה דומה של התוויות לזו של x1 ולכן נקבל את אותו ערך המדד של 0.96.
Leaf (j) | Nj | p^j | Q(p^j) | |
---|---|---|---|---|
1 | 1 | 4 | {43,41} | 24341=0.86 |
-1 | 2 | 1 | {10,11} | 20⋅1=0 |
הדגימות הרלוונטיות כרגע הן:
x1 | x2 | y | |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | -1 | 1 |
3 | -1 | -1 | 1 |
4 | -1 | -1 | -1 |
נבדוק את שני השדות שנותרו:
Leaf (j) | Nj | p^j | Q(p^j) | |
---|---|---|---|---|
1 | 1 | 2 | {22,20} | 21⋅0=0 |
-1 | 2 | 2 | {21,21} | 22121=1 |
Leaf (j) | Nj | p^j | Q(p^j) | |
---|---|---|---|---|
1 | 1 | 1 | {11,10} | 21⋅0=0 |
-1 | 2 | 3 | {32,31} | 23231=0.94 |
ה node האופטימאלי כאן הוא הפיצול לפי x1 ונשים לב שהענף של x1=1 כבר הומוגני:
x2 | y | |
---|---|---|
3 | -1 | 1 |
4 | -1 | -1 |
בעץ שמצאנו ישנם 2 nodes.
2) חשבו את הציון (score) של עץ זה תחת פונקציית המחיר של misclassification rate. האם ניתן להגיע לסיווג מושלם במקרה זה?
3) האם בעבור מקרה זה ניתן לבנות עץ אשר מגיע לאותו ציון כמו העץ שמצאתם בסעיף 1 אך עם פחות nodes? אם כן, הציעו סיבה אפשריות למה האלגוריתם בו השתמשתם בסעיף הקודם לא מצא את העץ הזה.
נשים לב שלמעשה ה- node השני בעץ לא עושה כלום:
מדוע האלגוריתם לא התכנס לפתרון זה?
ניתן להגדיר על סמך מדגם זה את בעיית supervised learning הבאה:
נציג את 10 השורות הראשונות במדגם:
pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | home.dest | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | Allen, Miss. Elisabeth Walton | female | 29 | 0 | 0 | 24160 | 211.338 | B5 | S | 2 | nan | St Louis, MO |
1 | 1 | 0 | Allison, Miss. Helen Loraine | female | 2 | 1 | 2 | 113781 | 151.55 | C22 C26 | S | nan | nan | Montreal, PQ / Chesterville, ON |
2 | 1 | 0 | Allison, Mr. Hudson Joshua Creighton | male | 30 | 1 | 2 | 113781 | 151.55 | C22 C26 | S | nan | 135 | Montreal, PQ / Chesterville, ON |
3 | 1 | 0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25 | 1 | 2 | 113781 | 151.55 | C22 C26 | S | nan | nan | Montreal, PQ / Chesterville, ON |
4 | 1 | 1 | Anderson, Mr. Harry | male | 48 | 0 | 0 | 19952 | 26.55 | E12 | S | 3 | nan | New York, NY |
5 | 1 | 1 | Andrews, Miss. Kornelia Theodosia | female | 63 | 1 | 0 | 13502 | 77.9583 | D7 | S | 10 | nan | Hudson, NY |
6 | 1 | 0 | Andrews, Mr. Thomas Jr | male | 39 | 0 | 0 | 112050 | 0 | A36 | S | nan | nan | Belfast, NI |
7 | 1 | 1 | Appleton, Mrs. Edward Dale (Charlotte Lamson) | female | 53 | 2 | 0 | 11769 | 51.4792 | C101 | S | D | nan | Bayside, Queens, NY |
8 | 1 | 0 | Artagaveytia, Mr. Ramon | male | 71 | 0 | 0 | PC 17609 | 49.5042 | nan | C | nan | 22 | Montevideo, Uruguay |
9 | 1 | 0 | Astor, Col. John Jacob | male | 47 | 1 | 0 | PC 17757 | 227.525 | C62 C64 | C | nan | 124 | New York, NY |
במדגם הנקי יש 999 רשומות.
בתרגול נשתמש רק בשדות הבאים:
נסמן:
Score before split: 0.492
Scores:
- pclass: 0.436
- sex: 0.360 <-
- sibsp: 0.479
- parch: 0.473
- embarked: 0.460
- age >= 9: 0.488
- fare >= 15.7417: 0.448
Score before split: 0.146
Scores:
- pclass: 0.109 <-
- sex: 0.146
- sibsp: 0.140
- parch: 0.143
- embarked: 0.130
- age >= 48: 0.142
- fare >= 10.5: 0.126
Score before split: 0.214
Scores:
- pclass: 0.202 <-
- sex: 0.214
- sibsp: 0.212
- parch: 0.209
- embarked: 0.205
- age >= 10: 0.207
- fare >= 26.2875: 0.205
Score before split: 0.010
Scores:
- pclass: 0.010
- sex: 0.010
- sibsp: 0.009
- parch: 0.008
- embarked: 0.009
- age >= 15: 0.007 <-
- fare >= 151.55: 0.009
נחשב את הציון (misclassification rate) המתקבל על ה test set:
זאת אומרת שיש לנו סיכוי של 80% לחזות נכונה האם אדם מסויים שרד או לא.