אלגוריתם קורי העכביש

אלגוריתם קורי העכביש (COBWEB) משמש עבור מערכת גדלה שבה קיימת היררכיה של קיבוץ קונספטואלי (conceptual clustering). שיטת קורי העכביש הומצאה על ידי פרופסור דאגלס. ה. פישר, אשר נכון לשנת 2017 עובד באוניברסיטת ואנדרבילט.

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

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

 אלגוריתם קורי העכביש 
  COBWEB(root, record): Input: A COBWEB node root, an instance to insert record if root has no children then children := {copy(root)} newcategory(record) \\ adds child with record’s feature values. insert(record, root) \\ update root’s statistics else insert(record, root) for child in root’s children do calculate Category Utility for insert(record, child), set best1, best2 children w. best CU. end for if newcategory(record) yields best CU then newcategory(record) else if merge(best1, best2) yields best CU then merge(best1, best2) COBWEB(root, record) else if split(best1) yields best CU then split(best1) COBWEB(root, record) else COBWEB(best1, record) end if end

 קישורים חיצוניים 
 יישום של קורי עכביש בשפת פייתון.

הערות שוליים

קטגוריה:בינה מלאכותית
קטגוריה:אלגוריתמים