Meezo ML نشر 18 يونيو 2021 أرسل تقرير نشر 18 يونيو 2021 ماهو ال DBScan وكيف نقوم بتطبيقه باستخدام مكتبة Sklearn؟ اقتباس
1 Ali Haidar Ahmad نشر 18 يونيو 2021 أرسل تقرير نشر 18 يونيو 2021 هي طريقة لعمل تقسيم للبيانات الغير معنونة، unlabeled data ويستخدم في التعلم بلا إشراف يحل مشكلة K-Means في تشكل العناقيد في البيانات التي فيها كثافات متفاوتة حيث تعتمد على إنشاء دوائر حول كل عينة من البيانات ويتم بعدها تصنيف العينات على أنها عينات أساسية أو حدية أو ضوضاء. حيث تعتبر العينة التي تحتوى على عدد min_samples أو أكثر من العينات بعينة أساسية وتعتبر العينة حدية إذا كان min_samples أقل في حين أن العينات التي لا تحوي دوائرها عينات تعتبر ضوضاء. يتم استخدامه عبر الموديول sklearn.cluster. استدعاء المكتبات: from sklearn.cluster import DBSCAN في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل. الشكل العام للموديل: DB=DBSCAN(eps=0.5, min_samples=5, algorithm='auto', p=None, n_jobs=None) الوسيط الأول eps هو اختصار ل epsilon أكبر مسافة بين عينتين من البيانات. الوسيط الثاني min_samples أقل عدد من العينات لتحديد فيما إذا كانت العينات أساسية أو حدية أو ضوضاء. الوسيط الثالث algorithm نوع الخوارزمية الذي يستخدمها NearestNeighbors لحساب أقرب جار وحساب المسافات بين العينات وهي ‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’ ولكن ينصح باعتماد auto لكي يتم اختيار أفضل خوارزمية. الوسيط الرابع p الطاقة لمقياس مينكوفسكي حيث عندما تساوي 1 يكون حساب المسافة عن طريق قانون منهاتن للمسافات وعندما تساوي 2 يتم الحساب عن طريق المسافة الإقليدية وفي الحالة الافتراضية يتم استخدام مينكوفسكي. الوسيط الخامس n_jobs عدد المعالجات التي تعمل بالتوازي وبتالي كلما زاد العدد زاد التسريع ,يوضع -1 للدلاله على عمل كامل المعالجات طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train,X_test تسطيع كتابة الأتي لعملية التدريب. الشكل العام للموديل: DB=DBSCAN(eps=0.5, min_samples=5,algorithm='auto', p=None, n_jobs=None) DB.fit(X_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب . يوجد دالة أخرى تستخدم لغرض التنبؤ كالآتي: نستطيع فيها حساب قيم التقسيم على التدريب والاختبار عن طريق التابع fit_predict ويكون وفق الشكل: y_pred_train = DB.fit_predict(X_train) y_pred_test = DB.fit_predict(X_test) print('DB Train data are : ' ,y_pred_train) print('DB Test data are : ' ,y_pred_test) لنأخذ مثال يوضح الموديل: # استدعاء المكتبات from sklearn.cluster import DBSCAN import numpy as np # تعين داتا دخل مزيفة X = np.array([[50, 3], [4, 5], [25, 30], [4, 1], [2, 7], [2, 8]]) # بناء الموديل DB= DBSCAN(eps=3, min_samples=2) # طباعة تصنيف العينه DB.fit_predict([[1,2]]) 1 اقتباس
1 ريم المهدي نشر 18 يونيو 2021 أرسل تقرير نشر 18 يونيو 2021 لابد أنك تعلم ان من تقنيات تعلم الاَلة التجميع clustering و هو المستخدم بصورة موسعة في عدد من المجالات مثل تقسيم العملاء Customer segmentation، توصيات منتجات أمازون Amazon’s recommendation system، الرابط بين هذه البيانات الضخمة هو غياب العناوين labels، وهنا تأتي خوارزميات عدة مثل K-Means و DBSCAN لتحل المشكلة بالإعتماد إما خصائص البيانات مثل كثافتها أو المسافة بينها و غيرها. ما يميز DBSCAN عن خورازميات اخرى مثل K-Means و Hierarchical Clustering هو عجزهم عن إنشاء مجموعات تعتمد على شكل البيانات إذا قمنا بتمثيلها في مخطط أبعاد dimensional diagram. بالنظر للصورة أعلاه ترى كيف تقوم الخوارزميات بتقسيم البيانات إلى مجموعات مختلفة، و الأن لنرى كيف تقوم خوارزمية DBSCAN بتقسيم البيانات. لاحظ أن الخوارزمية أخذت في الإعتبار القيم الشاذة أو المتطرفة بوضعها في مجموعة مختلفة، حيث انها لا تنتمي إلى أي من المجموعات الأخرى. اقتباس DBSCAN stands for Density-Based Spatial Clustering of Applications with Noise. لعلك لاحظت من الإسم أن DBSCAN تعتمد على كثافة البيانات وهي بعكس K-Means لا تحتاج لتعريف مسبق بعدد المجموعات المراد أخذها في الإعتبار للقيام بعملية التقسيم. 1 اقتباس
السؤال
Meezo ML
ماهو ال DBScan وكيف نقوم بتطبيقه باستخدام مكتبة Sklearn؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.