تعرّف على تجميع K-Means، وهي خوارزمية تعلم غير خاضعة للإشراف رئيسية لتجميع البيانات في مجموعات. استكشف عمليتها وتطبيقاتها ومقارناتها!
K-Means Clusterering هي خوارزمية مستخدمة على نطاق واسع في مجال التعلم غير الخاضع للإشراف المصمم لتقسيم مجموعة بيانات مجموعة بيانات إلى مجموعات فرعية متميزة وغير متداخلة. في السياق الأوسع ل التعلم الآلي (ML)، تعتبر هذه الطريقة ضرورية لاكتشاف الأنماط والهياكل المخفية ضمن البيانات غير المسماة. تعمل الخوارزمية من خلال تنظيم نقاط البيانات إلى عدد $K$ من المجموعات، حيث تنتمي كل نقطة إلى المجموعة ذات المتوسط الأقرب إلى أقرب مجموعة، والتي تعمل كنموذج أولي ل للمجموعة. يساعد هذا النهج في تقليل التباين داخل كل مجموعة، ما يضمن أن تكون نقاط البيانات في نفس المجموعة متشابهة قدر الإمكان مع الحفاظ على تمايز المجموعات المختلفة.
تكون عملية K-Means تكرارية وتبدأ باختيار $K$ مراكز أولية بقيمة $K$، والتي تعمل كمراكز للمجموعات. يمكن اختيار هذه المراكز بشكل عشوائي أو من خلال تقنيات تهيئة أكثر ذكاءً مثل تهيئة k-means ++ لتحسين سرعة التقارب. تستمر الخوارزمية بعد ذلك من خلال خطوتين أساسيتين حتى تستقر النتائج:
تتكرّر هذه الدورة حتى لا تتحرّك المجاميع المركزية بشكل ملحوظ، ما يشير إلى تقارب الخوارزمية. يُعتبر تحديد العدد الأمثل للمجموعات جزءًا مهمًا من العملية، وغالبًا ما يتم تحقيقه باستخدام تقنيات مثل طريقة الكوع أو من خلال تحليل درجة الصورة الظلية لقياس مسافة الفصل بين المجموعات الناتجة.
يعتبر K-Means Clustering متعدد الاستخدامات ويجد فائدة في مختلف الصناعات في لمهام التنقيب عن البيانات وتحليلها.
في حين أن أجهزة الكشف عن الأجسام الحديثة مثل Ultralytics YOLO11 غالبًا ما تستخدم تستخدم تقنيات الانحدار المتقدمة أو الرؤوس الخالية من الارتكاز، فقد لعبت K-Means دورًا محوريًا في تطور نماذج الكشف. استخدمت التكرارات السابقة، مثل YOLOOv2 حتى YOLOv5 تجميع K-Means على أبعاد الصندوق المحدود من مجموعة بياناتCOCO لتحديد مربعات الارتكاز المثلى الأمثل. زودت هذه المراسي المحسوبة مسبقًا النموذج بسلائف أفضل للتنبؤ بأشكال الأجسام، مما أدى إلى تحسين ثبات التدريب واستدعائه بشكل كبير.
من الشائع الخلط بين K-Means و K-أقرب الجيران (KNN)، ولكنهما يخدمان أغراضًا مختلفة جوهريًا.
مفهوم آخر ذو صلة هو DBSCAN، والذي يقوم على التجميع على أساس الكثافة بدلاً من المسافة من نقطة مركزية. على عكس K-Means، لا يتطلب DBSCAN تحديد عدد التجميعات مسبقًا وهو أفضل في التعامل مع القيم المتطرفة.
يوضح مثال Python التالي كيفية استخدام K-Means لتجميع ألوان البكسل، وهي خطوة شائعة شائعة في مهام الرؤية.
import numpy as np
from sklearn.cluster import KMeans
# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)
# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)
# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")