اذهب إلى المحتوى
  • 0

تطبيق خوارزمية Nearest Neighbors في التعليم بدون إشراف unsupervised learning باستخدام مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 0

نعم يمكن ذلك.
وفي Sklearn يتم استخدامها عبر الموديول:

neighbors.NearestNeighbors

وهي طريقة تستخدم في التعليم غير الخاضع للإشراف هو شبيه بالتصنيف ولكن نقطة الاختلاف أنه في التصنيف كان يدخل في عملية تحديد المثال لأي صنف ينتمني هي جيران هذا المثال عبر الاكثريه أما في التعليم غير الخاضع للإشراف فلا يوجد output كما نعلم لذلك هنا يتم اعطاء نصف قطر ويتم تحديد عدد جيران ويكون هذا المثال ينتمي إلى الجار الأقرب له.

  • استدعاء المكتبات:
rom sklearn.neighbors import NearestNeighbors

في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل

  • الشكل العام للموديل:
NearestN=NearestNeighbors(n_neighbors=5, radius=1.0,algorithm='auto',p=2,  n_jobs=None)
NearestN.fit(X_train)

الوسيط الأول n_neighbors عدد الجيران المستخدم في عملية التقسيم أي يتم اختيار أقرب خمس جيران مثلاً ثم يتم الحكم بينهم.
الوسيط الثاني  radius نصف القطر المستخدم في عملية التقسيم.
الوسيط الثالث algorithm نوع الخوارزمية الذي يستخدمها NearestNeighbors لحساب أقرب جار وهي ‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’ ولكن ينصح باعتماد auto لكي يتم اختيار أفضل خوارزمية.
الوسيط الرابع p  الطاقة لمقياس مينكوفسكي حيث عندما تساوي 1 يكون حساب المسافة عن طريق قانون منهاتن للمسافات وعندما تساوي 2 يتم الحساب عن طريق المسافة الإقليدية وفي الحالة الافتراضية يتم استخدام مينكوفسكي.
الوسيط الخامس  n_jobs عدد المعالجات التي تعمل بالتوازي وبتالي كلما زاد العدد زاد التسريع ,يوضع -1 للدلاله على عمل كامل المعالجات
طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test,  تسطيع كتابة الأتي لعملية التدريب.

  • الشكل العام للموديل:
NearestN=NearestNeighbors(n_neighbors=5, radius=1.0, algorithm='auto',p=2,  n_jobs=None)
NearestN.fit(X_train)

حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب.
لنأخذ مثال يوضح الموديل أكثر .
في هذا المثال قمنا بأخذ عينة مزيفm وبعد ذلك قمنا بتدريب NearestNeighborsl عليها وبعد ذلك قمنا
باستخدام الدالة المعرفة في الموديل radius_neighbors التي تستخدم لحساب الجيران الأقرب لنقطة معينة أو لعينة معينة ومن ثم طباعة النتائج.

  • استدعاء المكتبات:
import numpy as np
from sklearn.neighbors import NearestNeighbors
  • عينة مزيفة:
NearestN  = NearestNeighbors(n_neighbors=2, radius=0.4)
NearestN .fit(samples)
  • إيجاد الجيران لنصف قطر 0.4 و العينة المدخلة:
NearestNeighborsModel  = NearestNeighborsModel .radius_neighbors( [[0, 0, 1.4]], 0.5, return_distance=False)
  • طباعة الجيران:
print(np.asarray(nbrs)) # 4

أي أن الجار القريب للعينة [[1.4, 0, 0]] وبنصف قطر 0.5 هي العينة الرابعة [1, 0, 0] على اعتبار أن اندكس المصفوفة يبدأ من الصفر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...