Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

تجميع K-Means

تعرّف على تجميع K-Means، وهي خوارزمية تعلم غير خاضعة للإشراف رئيسية لتجميع البيانات في مجموعات. استكشف عمليتها وتطبيقاتها ومقارناتها!

K-Means Clusterering هي خوارزمية مستخدمة على نطاق واسع في مجال التعلم غير الخاضع للإشراف المصمم لتقسيم مجموعة بيانات مجموعة بيانات إلى مجموعات فرعية متميزة وغير متداخلة. في السياق الأوسع ل التعلم الآلي (ML)، تعتبر هذه الطريقة ضرورية لاكتشاف الأنماط والهياكل المخفية ضمن البيانات غير المسماة. تعمل الخوارزمية من خلال تنظيم نقاط البيانات إلى عدد $K$ من المجموعات، حيث تنتمي كل نقطة إلى المجموعة ذات المتوسط الأقرب إلى أقرب مجموعة، والتي تعمل كنموذج أولي ل للمجموعة. يساعد هذا النهج في تقليل التباين داخل كل مجموعة، ما يضمن أن تكون نقاط البيانات في نفس المجموعة متشابهة قدر الإمكان مع الحفاظ على تمايز المجموعات المختلفة.

كيف تعمل الخوارزمية

تكون عملية K-Means تكرارية وتبدأ باختيار $K$ مراكز أولية بقيمة $K$، والتي تعمل كمراكز للمجموعات. يمكن اختيار هذه المراكز بشكل عشوائي أو من خلال تقنيات تهيئة أكثر ذكاءً مثل تهيئة k-means ++ لتحسين سرعة التقارب. تستمر الخوارزمية بعد ذلك من خلال خطوتين أساسيتين حتى تستقر النتائج:

  1. التعيين: يتم تعيين كل نقطة بيانات في بيانات التدريب يتم تعيينها إلى أقرب نقطة مركزية بناءً على مقياس المسافة، وعادةً ما تكون المسافة المسافة الإقليدية. تقوم هذه الخطوة بتجميع البيانات البيانات إلى مجموعات $K$.
  2. تحديث: يتم حساب النقط المركزية الجديدة لكل مجموعة عن طريق حساب المتوسط لجميع نقاط البيانات المخصصة لتلك المجموعة المحددة.

تتكرّر هذه الدورة حتى لا تتحرّك المجاميع المركزية بشكل ملحوظ، ما يشير إلى تقارب الخوارزمية. يُعتبر تحديد العدد الأمثل للمجموعات جزءًا مهمًا من العملية، وغالبًا ما يتم تحقيقه باستخدام تقنيات مثل طريقة الكوع أو من خلال تحليل درجة الصورة الظلية لقياس مسافة الفصل بين المجموعات الناتجة.

تطبيقات العالم الحقيقي في الذكاء الاصطناعي

يعتبر K-Means Clustering متعدد الاستخدامات ويجد فائدة في مختلف الصناعات في لمهام التنقيب عن البيانات وتحليلها.

  • تقسيم العملاء: تستخدم الشركات التقسيم إلى مجموعات لتجميع العملاء بناءً على أو التركيبة السكانية أو تاريخ التصفح. من خلال تحديد المجموعات المميزة، يمكن للشركات تخصيص استراتيجيات تسويقية على غرار الطريقة التي يعمل بها الذكاء الاصطناعي في البيع بالتجزئة على تحسين استهداف العملاء وإدارة المخزون.
  • ضغط الصور: في مجال الرؤية الحاسوبية (CV)، يتم استخدام K-Means من أجل تكميم الألوان. تقلل هذه التقنية عدد الألوان الفريدة في الصورة عن طريق تجميع قيم البكسل, مما يؤدي بشكل فعال تقليل الأبعاد مع الحفاظ على التكامل البصري للصورة.
  • اكتشاف الشذوذ: من خلال تعلم بنية مجموعات البيانات العادية، يمكن للأنظمة تحديد القيم المتطرفة التي تقع بعيداً عن أي نقطة مركزية. وهذا أمر قيّم لتطبيقات الأمان و والكشف عن الشذوذ في حركة مرور الشبكة.

K-Means في سجل اكتشاف الكائنات

في حين أن أجهزة الكشف عن الأجسام الحديثة مثل Ultralytics YOLO11 غالبًا ما تستخدم تستخدم تقنيات الانحدار المتقدمة أو الرؤوس الخالية من الارتكاز، فقد لعبت K-Means دورًا محوريًا في تطور نماذج الكشف. استخدمت التكرارات السابقة، مثل YOLOOv2 حتى YOLOv5 تجميع K-Means على أبعاد الصندوق المحدود من مجموعة بياناتCOCO لتحديد مربعات الارتكاز المثلى الأمثل. زودت هذه المراسي المحسوبة مسبقًا النموذج بسلائف أفضل للتنبؤ بأشكال الأجسام، مما أدى إلى تحسين ثبات التدريب واستدعائه بشكل كبير.

K-Means مقابل K-Nearest Neighbours (KNN)

من الشائع الخلط بين K-Means و K-أقرب الجيران (KNN)، ولكنهما يخدمان أغراضًا مختلفة جوهريًا.

  • K-Means هي خوارزمية غير خاضعة للإشراف تُستخدم للتجميع. لا تتطلب لا تتطلب بيانات مصنفة وتركز على إيجاد البنية الكامنة في مجموعة البيانات.
  • KNN هي خوارزمية تعلّم خاضعة للإشراف تُستخدم في لتصنيف الصور والانحدار. وهي تعتمد على مدخلات موسومة classify نقاط البيانات الجديدة بناءً على فئة الأغلبية لأقرب جيرانها.

مفهوم آخر ذو صلة هو 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_}")

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن