יצירת מדד דמיון ידני

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

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

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

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

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

  • מידות: סביר להניח שגודל הנעל יוצר התפלגות גאוסיאנית. מאשרים את הפעולה. לאחר מכן, ננרמל את הנתונים.
  • מחיר (p): סביר להניח שהנתונים הם התפלגות של פויסון. מאשרים את הפעולה. אם יש לכם מספיק נתונים, צריך להמיר את הנתונים לרבעונים ולשנות את הגודל שלהם ל- \([0,1]\).
  • משלבים את הנתונים באמצעות שגיאה ריבועית ממוצעת (root). במקרה הזה, הדמיון הוא \(\sqrt{\frac{s^2+p^2}{2}}\).

אם נשתמש בדוגמה מפושטת, נחשב דמיון בין שתי נעליים בארה"ב במידות 8 ו-11, והמחירים 120 ו-150. מאחר שאין לנו מספיק נתונים כדי להבין את ההתפלגות, פשוט נתאים את הנתונים מבלי לנרמל או להשתמש בכמויות גדולות.

פעולהשיטה
משנים את הגודל. צריך נניח שגודל הנעל המקסימלי הוא 20. יש לחלק את תיבות 8 ו-11 בגודל המקסימלי של 20, כדי לקבל 0.4 ו-0.55.
התאמת המחיר. מחלקים בין 120 ל-150 במחיר המקסימלי של 150, כדי לקבל 0.8 ו-1.
מאתרים את ההבדל בגודל. \(0.55 - 0.4 = 0.15\)
מאתרים את ההפרש במחיר. \(1 - 0.8 = 0.2\)
מוצאים את ה-RMSE. \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

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

\[\text{Similarity} = 1 - 0.17 = 0.83\]

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

מה קורה אם יש נתונים קטגוריים? הנתונים המסווגים יכולים להיות:

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

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

דוגמאות:

  • ["comedy","action"] ["comedy","action"] = 1
  • ["comedy", "action"] ו-[“action”] = 1⁄2
  • ["comedy", "action"] ו-["action", "drama"] = 1⁄3
  • ["comedy", " action"] ו-["non-fision", "ביוגרפי"] = 0

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

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

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

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