دليل شامل يشرح خوارزمية KNN (K-Nearest Neighbors)

خوارزمية KNN
خوارزمية KNN (K-Nearest Neighbors) هي واحدة من أبسط وأشهر خوارزميات تعلم الآلة، وتعتمد على مبدأ الجيران الأقرب لاتخاذ القرارات.

مقدمة

تُعتبر خوارزمية KNN واحدة من أبسط خوارزميات تعلم الآلة وأكثرها سهولة في الفهم، حيث تعتمد على فكرة مباشرة جدًا: "الأقرب إليك يحدد هويتك".

ورغم بساطتها، إلا أنها فعالة جدًا في العديد من التطبيقات الواقعية، خاصة في مشاكل التصنيف البسيطة والمتوسطة.

KNN لا يتعلم نموذجًا معقدًا، بل يعتمد على البيانات نفسها لاتخاذ القرار.

ما هي خوارزمية KNN؟

KNN هي خوارزمية تعلم آلة تعتمد على إيجاد أقرب K نقاط (جيران) إلى نقطة جديدة، ثم اتخاذ القرار بناءً على أغلبية هذه الجيران أو متوسطهم.

تستخدم في:

  • التصنيف Classification
  • الانحدار Regression
K في KNN تعني عدد الجيران المستخدمين لاتخاذ القرار.

الفكرة الأساسية

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

كيف تعمل KNN؟

تمر الخوارزمية بعدة خطوات:

  • تحديد نقطة جديدة
  • حساب المسافة بينها وبين جميع النقاط
  • اختيار أقرب K نقاط
  • اتخاذ القرار بناءً على الأغلبية

حساب المسافات

أهم جزء في KNN هو حساب المسافة بين النقاط.

أشهر أنواع المسافات

  • المسافة الإقليدية
  • المسافة المانهاتنية
  • مسافة Minkowski
اختيار نوع المسافة يؤثر بشكل كبير على النتائج.

اختيار قيمة K

قيمة K هي عدد الجيران الذين يتم الاعتماد عليهم.

  • K صغيرة: حساسة للضوضاء
  • K كبيرة: أقل دقة أحيانًا

اختيار K المناسب يعتمد على البيانات.

التصنيف

في التصنيف، يتم اختيار الفئة الأكثر تكرارًا بين الجيران.

مثال: إذا كان 3 من 5 جيران ينتمون لفئة معينة، يتم اختيارها.

الانحدار باستخدام KNN

في الانحدار، يتم حساب متوسط قيم الجيران بدل التصويت.

KNN يمكنه التنبؤ بالقيم المستمرة أيضًا.

أهمية تطبيع البيانات

KNN يعتمد على المسافات، لذلك يجب توحيد المقاييس.

  • Min-Max Scaling
  • Standardization

بدون التطبيع، قد تسيطر بعض الميزات على القرار.

التعقيد الحسابي

KNN لا يقوم بالتدريب الحقيقي، لكنه بطيء في مرحلة التنبؤ لأنه يحسب المسافات لكل نقطة.

المميزات

  • بسيطة وسهلة الفهم
  • لا تحتاج تدريب معقد
  • فعالة في البيانات الصغيرة
  • مرنة

العيوب

  • بطيئة مع البيانات الكبيرة
  • حساسة للضوضاء
  • تحتاج ذاكرة كبيرة
  • تتأثر بالميزات غير المهمة

أمثلة عملية

مثال 1: تصنيف الفواكه

تصنيف فاكهة جديدة بناءً على أقرب الفواكه في الحجم واللون.

مثال 2: توصيات الأفلام

اقتراح أفلام بناءً على المستخدمين المشابهين.

مثال 3: التشخيص الطبي

تحديد المرض بناءً على أقرب الحالات السابقة.

التطبيقات

  • أنظمة التوصية
  • الطب
  • التصنيف النصي
  • التعرف على الأنماط

مقارنة مع الخوارزميات الأخرى

KNN أبسط من معظم الخوارزميات، لكنه أقل كفاءة مع البيانات الضخمة مقارنة بالشبكات العصبية أو الغابات العشوائية.

الأسئلة الشائعة

هل KNN يحتاج تدريب؟
لا، هو يعتمد على تخزين البيانات فقط.
هل هو مناسب للبيانات الكبيرة؟
لا، لأنه بطيء في حساب المسافات.
ما أفضل قيمة لـ K؟
تختلف حسب البيانات، وغالبًا يتم اختيارها بالتجربة.
هل يتأثر بالضوضاء؟
نعم، خصوصًا عند K صغير.