Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Chameleon (คาเมเลอน) คืออะไร?

Chameleon เป็น Hierarchical Clustering Algorithm ที่ใช้ Dynamic Modeling เพื่อ Decide Similarity ระหว่าง Pairs ของ Clusters พัฒนาจาก Observed Weaknesses ของ 2 Hierarchical Clustering Algorithms ได้แก่ ROCK และ CURE

ROCK และ Designs ที่เกี่ยวข้อง เน้น Cluster Interconnectivity แต่ Neglect Data เกี่ยวกับ Cluster Proximity CURE และ Designs ที่เกี่ยวข้อง พิจารณา Cluster Proximity แต่ Neglect Cluster Interconnectivity ใน Chameleon Cluster Similarity ประเมินจาก: ความเชื่อมต่อภายใน Cluster (Interconnectivity) และ Proximity ของ Clusters โดยเฉพาะ 2 Clusters จะ Merge ถ้า Interconnectivity สูง และอยู่ใกล้กัน

ไม่ Base บน Static User-supplied Model และสามารถ Auto-adapt ไปยัง Internal Characteristics ของ Clusters ที่ Merge กระบวนการ Merge Support Discovery ของ Natural และ Homogeneous Clusters และใช้ได้กับ All Data Types ถ้า Similarity Function กำหนดได้

Chameleon ใช้ K-nearest-neighbor Graph Technique สร้าง Sparse Graph โดย Vertex แต่ละตัว = Data Object มี Edge ระหว่าง 2 Vertices ถ้า Object หนึ่งอยู่ใน K-most-similar Objects ของอีกตัว Edges Weighted เพื่อ Reflect Similarity ระหว่าง Objects

Chameleon ใช้ Graph Partitioning Algorithm แบ่ง K-nearest-neighbor Graph เป็น Large Number ของ Relatively Small Subclusters ใช้ Agglomerative Hierarchical Clustering Algorithm ที่ Merge Subclusters ซ้ำๆ ตาม Similarity ระบุ Pairs ของ Most Similar Subclusters คำนึงถึง Interconnectivity และ Closeness ทั้งคู่

K-nearest-neighbor Graph Capture Neighborhood Approach แบบ Dynamic: Neighborhood Radius ของ Object กำหนดโดย Density ของ Region ที่ Object อยู่ Dense Area = Neighborhood Narrow Sparse Region = Neighborhood Wider

ผลลัพธ์คือ Natural Clusters มากกว่า Density-based Methods เช่น DBSCAN ที่ใช้ Global Neighborhood นอกจากนี้ Density ของ Region ถูก Record เป็น Weight ของ Edges โดยเฉพาะ Edges ของ Dense Region น้ำหนักมากกว่า Sparse Region

Graph-partitioning Algorithm Partition K-nearest-neighbor Graph ให้ Minimize Edge Cut คือ Cluster C แบ่งเป็น Sub-clusters Ci และ Cj เพื่อ Minimize Weight ของ Edges ที่ Cut ถ้า C Bisected เป็น Ci และ Cj Edge Cut แทนด้วย EC (Ci, Cj) กำหนด Absolute Interconnectivity ระหว่าง Cluster Ci และ Cj