מידת דמיון ידנית

כפי שראינו, שיטת k-means מקצה נקודות למרכז הכובד הקרוב ביותר שלהן. אבל מה המשמעות של 'הקרוב ביותר'?

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

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

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

  • גודל (s): סביר להניח שמידה של נעל יוצרת התפלגות גאוסיאנית. מאשרים את זה. לאחר מכן, נרמלים את הנתונים.
  • מחיר (p): סביר להניח שהנתונים הם התפלגות פואסונית. מאשרים את זה. אם יש לכם מספיק נתונים, כדאי להמיר את הנתונים לקונטיליים ולשנות את התצוגה לפי [0,1].

בשלב הבא, משלבים את שני המאפיינים על ידי חישוב השגיאה הריבונית הממוצעת (RMSE). המדד הגס הזה של הדמיון מחושב לפי(sisj)2+(pipj)22.

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

פעולהשיטה
משנים את הגודל. נניח שגודל הנעל המקסימלי הוא 20. מחלקים את הערכים 8 ו-11 בגודל המקסימלי 20 כדי לקבל את הערכים 0.4 ו-0.55.
לשנות את המחיר בהתאם. מחלקים את 120 ואת 150 במחיר המקסימלי 150 כדי לקבל 0.8 ו-1.
בודקים את ההבדל בגודל. 0.550.4=0.15
מוצאים את ההפרש במחיר. 10.8=0.2
מחשבים את הערך של RMSE. 0.22+0.1522=0.17

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

Similarity=10.17=0.83

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

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

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

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

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

  • [“comedy”,”action”] and [“comedy”,”action”] = 1
  • [“comedy”,”action”] ו-[“action”] = ½
  • [“comedy”,”action”] and [“action”, "drama"] = ⅓
  • [“comedy”,”action”] and [“non-fiction”,”biographical”] = 0

הדמיון של Jaccard הוא לא מדד הדמיון הידני היחיד האפשרי לנתונים קטגוריאליים. שתי דוגמאות נוספות:

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

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

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

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

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