86- كورس برمجة Machine Learning بلغة البايثون Python شرح – Hierarchical Clustering

مفهوم التجميع الهرمي

التجميع الهرمي هو إحدى تقنيات التعلم غير الموجهة المستخدمة لتحليل البيانات والكشف عن الأنماط داخلها عن طريق تجميع البيانات في مجموعات بناءً على مستوى التشابه بينها. يهدف هذا النوع من التجميع إلى إنشاء “شجرة” أو “شجرة تجميع” (dendrogram) تتيح للمحللين فهم البنية الهرمية للبيانات وكيفية ارتباطها ببعضها البعض. هناك نوعان رئيسيان من التجميع الهرمي: التجميع التزايدي (Agglomerative) والتجميع التقسيمي (Divisive). يعتبر التجميع التزايدي الأكثر شيوعاً حيث يبدأ كل عنصر في مجموعة خاصة به ويتم دمج المجموعات بشكل تدريجي حتى يتم الوصول إلى مجموعة واحدة تشمل جميع العناصر.

التطبيق العملي للتجميع الهرمي باستخدام Python

يمكن تنفيذ التجميع الهرمي بسهولة باستخدام لغة البرمجة Python بفضل المكتبات المتاحة مثل SciPy وScikit-learn. يمكننا البدء بتحميل البيانات ومعالجتها، ثم استخدام خوارزمية التجميع الهرمي لتحليل البيانات. على سبيل المثال، يمكننا استخدام البيانات الخاصة بالزهور (Iris dataset) لإجراء التجميع الهرمي وتحليل النتائج.

في البداية، نقوم بتحميل مجموعة البيانات واستخدام مكتبة Scikit-learn لتحديد الخوارزمية المناسبة. ثم نستخدم دالة linkage من مكتبة SciPy لإنشاء شجرة التجميع، حيث يمكننا تحديد المسافة بين المجموعات باستخدام معايير مختلفة مثل المسافة الإقليدية. يمكننا بعد ذلك استخدام دالة dendrogram لرسم شجرة التجميع ومعاينة البنية الهرمية للبيانات.

فيما يلي مثال بسيط لتوضيح كيفية تنفيذ ذلك:

import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.datasets import load_iris

# تحميل البيانات
iris = load_iris()
X = iris.data

# تنفيذ التجميع الهرمي
Z = linkage(X, method='ward')

# رسم شجرة التجميع
plt.figure(figsize=(10, 7))
dendrogram(Z, labels=iris.target)
plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('Sample index')
plt.ylabel('Distance')
plt.show()

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