مشروع التجميع باستخدام K-Means
تطبيقه على مجموعة بيانات حقيقية
مشروع التجميع باستخدام K-Means درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 3 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 5 دروس في المجموع.
مشروع تجميع K-Means
مشروع تجميع K-Means
سنطبّق في هذا المشروع تجميع K-Means على مجموعة بيانات واقعية: تقسيم العملاء إلى شرائح. والهدف هو تجميع العملاء استنادًا إلى أنماط إنفاقهم.

نظرة عامة على مجموعة البيانات
نظرة عامة على مجموعة البيانات
تحتوي مجموعة البيانات على الأعمدة التالية:
- معرّف العميل: معرّف فريد لكل عميل.
- العمر: عمر العميل.
- الدخل السنوي: الدخل السنوي بآلاف الدولارات.
- درجة الإنفاق: درجة تُسند استنادًا إلى سلوك العميل وأنماط إنفاقه (1–100).
الخطوة 1: استيراد مجموعة البيانات والمكتبات
الخطوة 1: استيراد مجموعة البيانات والمكتبات
سنبدأ باستيراد المكتبات اللازمة وتحميل مجموعة البيانات:
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# Load dataset
data = pd.read_csv('Mall_Customers.csv')
print(data.head())الخطوة 2: المعالجة المسبقة للبيانات
الخطوة 2: المعالجة المسبقة للبيانات
سنختار السمات ذات الصلة بالتجميع، وسنطبّع البيانات إذا لزم الأمر. سنستخدم في هذا المشروع الدخل السنوي ودرجة الإنفاق:
# Select relevant features
X = data[['Annual Income (k$)', 'Spending Score (1-100)']].values
print(X[:5])الخطوة 3: تحديد العدد الأمثل للعناقيد
الخطوة 3: تحديد العدد الأمثل للعناقيد
نستخدم طريقة الكوع للعثور على العدد الأمثل للعناقيد، وذلك من خلال رسم مجموع مربعات المسافات داخل العناقيد (WCSS) لقيم مختلفة من K:
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', random_state=42)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of Clusters')
plt.ylabel('WCSS')
plt.show()الخطوة 4: تطبيق تجميع K-Means
الخطوة 4: تطبيق تجميع K-Means
استنادًا إلى طريقة الكوع، نختار العدد الأمثل للعناقيد (مثلًا K=5) ونلائم نموذج K-Means:
kmeans = KMeans(n_clusters=5, init='k-means++', random_state=42)
kmeans.fit(X)
# Add cluster labels to the dataset
data['Cluster'] = kmeans.labels_
print(data.head())الخطوة 5: تصوير العناقيد
الخطوة 5: تصوير العناقيد
يمكننا رسم العناقيد في فضاء ثنائي الأبعاد لملاحظة مدى انفصالها:
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red', marker='X')
plt.title('Customer Segmentation')
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
plt.show()الخطوة 6: تفسير العناقيد
الخطوة 6: تفسير العناقيد
يمثل كل عنقود مجموعة من العملاء ذوي أنماط الإنفاق المتشابهة. على سبيل المثال:
- العنقود 1: دخل مرتفع وإنفاق مرتفع.
- العنقود 2: دخل منخفض وإنفاق منخفض.
- العنقود 3: دخل متوسط وإنفاق مرتفع.
تحديات التجميع في العالم الواقعي
تحديات التجميع في العالم الواقعي
رغم قوة التجميع، تواجه تطبيقاته في العالم الواقعي تحديات مثل:
- مجموعات البيانات عالية الأبعاد.
- البيانات المشوشة أو غير المكتملة.
- تفسير نتائج العناقيد تفسيرًا ذا معنى.
ملخص والخطوات التالية
ملخص والخطوات التالية
في هذا المشروع، قمنا بما يلي:
- استكشفنا مجموعة بيانات واقعية.
- طبّقنا تجميع K-Means وصوّرنا النتائج.
- فسّرنا العناقيد لفهم سلوك العملاء.
سنتعلم بعد ذلك تقنيات تقليل الأبعاد مثل PCA وt-SNE.

الأسئلة الشائعة
هل درس «مشروع التجميع باستخدام K-Means» مجاني؟
نعم — نص درس «مشروع التجميع باستخدام K-Means» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 5 دروس في المجموع.
ماذا ستتعلم في «مشروع التجميع باستخدام K-Means»؟
تطبيقه على مجموعة بيانات حقيقية تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 5.
كم من الوقت يستغرق درس «مشروع التجميع باستخدام K-Means»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مقدمة إلى خوارزميات التجميع
- التجميع باستخدام K-Means
- مشروع التجميع باستخدام K-Means
- أساسيات خفض الأبعاد
- تطبيق خفض الأبعاد