סילואט (אשכולות)

מדד סילואט (Silhouette) הוא מדד בתורת האשכולות שמאפשר למדוד עד כמה חלוקת הנתונים במאגר המידע לקבוצות בעלות מאפיינים דומים שביצענו נכונה ומתאימה. סילואט היא שיטה אשר תוארה לראשונה על ידי פיטר ג'יי ריסיו בשנת 1986, לטובת פירוש ואימות אחידות הנתונים באשכולות נתונים במאגרי מידע. השיטה מייצגת בצורה גרפית תמציתית עד כמה דומה נתון מסוים באשכול נתונים בהשוואה לכלל הנתונים באותו אשכול. ערך הסילואט, הנע בין (1-) ל-1, מציין עד כמה דומה נתון מסוים לנתונים האחרים באשכול אליו הוא משויך (לכידות) ועד כמה הוא שונה מהנתונים באשכולות הסמוכים (הפרדה). ערכי סילואט נמוכים או שליליים לנתונים רבים במאגר המידע מעידים על בניה לקויה של  האשכולות או חלוקת נתונים שגויה לאשכולות (כדוגמת מרחב אוקלידי או מרחק מנהטן). בהנחה כי קיים מאגר מידע שחולק לאשכולות בכל שיטה שהיא (כדוגמת K-means המחלק את הנתונים ל-K אשכולות), לכל נתון במאגר המידע מוגדרים שני פרמטרים: a ( i ) {\displaystyle a(i)} פרמטר המגדיר עד כמה מאפייני הנתון דומים למאפייני הנתונים האחרים באותו אשכול. a ( i ) {\displaystyle a(i)} הוא חישוב ממוצע המרחקים בין הנתון לשאר הנתונים באשכול ונקרא מדד הלכידות (בין הנתון לחבריו באותו אשכול). ככל שערך a ( i ) {\displaystyle a(i)} קטן יותר כך הנתון תואם יותר לאשכול בו הוא נמצא. b ( i ) {\displaystyle b(i)} פרמטר המגדיר עד כמה מאפייני הנתון שונים ממאפייני שאר הנתונים באשכולות הנוספים. b ( i ) {\displaystyle b(i)} הוא חישוב ממוצע המרחקים בין הנתון לנתונים באשכולות אחרים ומחישוב זה נבחר את ערך ממוצע המרחקים הקטן ביותר לאשכול אחר, ונקרא מדד ההפרדה בין הנתון לנתונים באשכולות אחרים. ככל שערך b ( i ) {\displaystyle b(i)} גדול יותר כך הנתון שונה יותר משאר האשכולות. האשכול בעל ערך ממוצע המרחקים הקטן ביותר מהנתון הנבדק נקרא אשכול שכן. s ( i ) {\displaystyle s(i)} הוא הערך אשר מצביע עד כמה הנתון הנבדק מתאים לאשכול בו הוא נמצא. ערך זה הוא ערך סילואט ומחושב באופן הבא: s ( i ) = b ( i ) − a ( i ) m a x { a ( i ) , b ( i ) } {\displaystyle s(i)={\frac {b(i)-a(i)}{max\{a(i),b(i)\}}}} כאשר − 1 ≤ s ( i ) ≤ 1 {\displaystyle -1\leq s(i)\leq 1} כלומר, s ( i ) = { 1 − a ( i ) b ( i ) , if  a ( i ) < b ( i ) 0 , if  a ( i ) = b ( i ) b ( i ) a ( i ) − 1 , if  a ( i ) > b ( i ) {\displaystyle s(i)={\begin{cases}1-{\tfrac {a(i)}{b(i)}},&{\text{if }}a(i)<b(i)\\0,&{\text{if }}a(i)=b(i)\\{\frac {b(i)}{a(i)}}-1,&{\text{if }}a(i)>b(i)\end{cases}}} משמעות ערך סילואט היא: כאשר s ( i ) {\displaystyle s(i)} קרוב ל-1 ניתן לומר כי הנתון מתאים לאשכול בו הוא נמצא. ערך שכזה מתקבל כאשר ערך הלכידות קטן בצורה משמעותית מערך ההפרדה  ( a ( i ) ≪ b ( i ) ) {\displaystyle (a(i)\ll b(i))} . כאשר s ( i ) {\displaystyle s(i)} קרוב ל-0 ניתן לומר כי הנתון נמצא קרוב מאוד לגבול בין שני אשכולות שכנים. כאשר s ( i ) {\displaystyle s(i)} קרוב ל- (1-) ניתן לומר כי הנתון נמצא באשכול שלא מתאים לו. חישוב ממוצע ערכי סילואט של הנתונים באשכול מסוים מצביע על צפיפות הנתונים באשכול, או במילים אחרות, עד כמה הפרטים שבו דומים אחד לשני. חישוב ממוצע ערכי הסילואט של כלל הנתונים במאגר המידע מצביע על טיב בחירת מרכזי הכובד, או במילים אחרות, האם מספר מרכזי הכובד שנבחרו נכון והאם מוקמו במקום הנכון. את ערך הסילואט של הנתונים, האשכולות והמאגר כולו ניתן למקסם על ידי בחירת מספר האשכולות וחלוקת הנתונים אליהם בכלים המיועדים לסידור אשכולות מיטבי (כדוגמת k-means, EM) טווח: נע בין -1 ל-1, כאשר ערכים קרובים יותר ל-1 מצביעים על כך שהמדגם מותאם היטב לאשכול שלו והתאמה גרועה לאשכולות אחרים, וערכים קרובים יותר ל-1 מציינים שהמדגם מותאם בצורה גרועה ל אשכול משלו ומותאם היטב לאשכולות אחרים. רגישות: קיימת רגישות למספר האשכולות ולצורת האשכולות. זה בדרך כלל גבוה יותר עבור מערכי נתונים עם אשכולות מוגדרים היטב ונבדלים ונמוך עבור מערכי נתונים עם אשכולות חופפים או מוגדרים בצורה גרועה. פרשנות: ציון גבוה מצביע על כך שהאשכולות במערך הנתונים מוגדרים היטב ומובחנים, בעוד שציון נמוך מצביע על כך שהאשכולות מוגדרים בצורה גרועה או חופפים זה לזה. מגבלות: ציון רגיש לקנה המידה של התכונות וייתכן שלא יהיה אמין עבור מערכי נתונים עם התפלגות מוטות מאוד או חריגים. הוא רגיש גם לבחירת מדד המרחק ואלגוריתם מקבץ, לכן חשוב לקחת בחשבון את הגורמים הללו בחשבון. ניתוח אשכולות כריית מידע Peter J. Rousseeuw (1987), "Silhouettes: a Graphical Aid to the Interpretation and Validation of Cluster Analysis", Computational and Applied Mathematics 20, עמ' 53-65 R.C. de Amorim, C. Hennig (2015), "Recovering the number of clusters in data sets with noise features using feature rescaling factors", Information Sciences 324, עמ' 126-145