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

تطبيق خوارزمية Hierarchical clustering باستخدام مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

أفضل دوماً أن أبدأ بمقدمة بسيطة عندما يتعلق الأمر بخوارزميات التعليم بدون إشراف، إنها طريقة لعمل تقسيم للبيانات الغير معنونة، unlabeled data وتستخدم في التعلم بلا إشراف 
وهي مجموعة من خوارزميات التقسيم التي تبني تقسيمات أو مجموعات متداخلة على التوالي ,يتم تمثيل هذا التسلسل الهرمي للعناقيد كشجرة هرمية حيث أن أوراق هذه الشجرة هي عناقيد بعينة واحدة فقط وجذرها هو مجموعة العناقيد كلها حيث يقوم AgglomerativeClustering بعملية التقسيم من أسفل إلى أعلى حيث تبدأ كل عينة في مجموعة خاصة بها ثم يتم دمج المجموعات على التوالي مثل تجمع الطرق .
يتم استخدامها عبر الموديول sklearn.cluster.
استدعاء المكتبات:

from sklearn.cluster import AgglomerativeClustering

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

AggModel=AgglomerativeClustering(n_clusters=2, affinity='euclidean', memory=None, 
                         linkage='ward',distance_threshold=None,compute_distances=False)

الوسيط  الأول قيمة صحيحة تمثل عدد العناقيد .
الوسيط الثاني  affinity المقياس المستخدم لعملية الدمج بين المجموعات ويمكن أن يكون المسافة الأقليدية أو مسافة منهاتن أو المحسوبة سابقا أي يكون هنالك مصفوفة تحوي قيم المسافات. 
الوسيط الثالث memory بالحالة الافتراضية يتم استخدام الذاكرة cacah لحساب الشجرة الهرمية.
الوسيط الرابع  linkage معيار الربط أو الوصل بين المجموعات حيث يحدد هذا المعيار المسافة التي  يجب استخدامها بين مجموعتين حيث يتم دمج كل مجموعتين تمتلكان أقل مسافه وهكذا..
الوسيط الخامس  distance_threshold عتبة المسافة تكون مثل خط أفقي على أوراق الشجرة كل مجموعة من الأوراق فوقها تعتبر عنقود أي مجموعة تحتها لا يعتبر ..
الوسيط السادس compute_distances يستخدم لحساب المسافات بين المجموعات..
طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train,X_test  تسطيع كتابة الأتي لعملية التدريب
الشكل العام للموديل:

AggModel=AgglomerativeClustering(n_clusters=2, affinity='euclidean', memory=None, 
                         linkage='ward',distance_threshold=None,compute_distances=False)
AP.fit(X_train)

حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب .
يوجد دالة أخرى تستخدم لغرض التنبؤ، نستطيع فيها حساب قيم التقسيم على التدريب والاختبار عن طريق التابع fit_predict  ويكون وفق الشكل:

# طباعة الخرج على الاختبار والتدريب
y_pred_train = AP.fit_predict(X_train)
y_pred_test = AP.fit_predict(X_test)
print('AP Train data are : ' ,y_pred_train)
print('AP Test data are : ' ,y_pred_test)

لنأخذ مثال يوضح الموديل :

from sklearn.cluster import AgglomerativeClustering
import numpy as np
تعين داتا دخل مزيفة
X = np.array([[0, 4], [3, 5], [1, 1],
               [2, 3], [5, 5], [4, 2]])
بناء الموديل
Agg = AgglomerativeClustering()
Agg.fit(X)
طباعة تصنيف العينه
Agg.fit_predict([[0, 0], [4, 4]])
النتيجة
array([1, 0], dtype=int64)

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...