جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
معمل عملي - تعلم غير موجه
تعلم غير موجه (Unsupervised Learning) باستخدام مكتبة scikit-learn: توليد البيانات، تجميعها، تقييمها، وتحسينها
sklearn.datasets.make_blobssklearn.cluster.KMeansn_clusters، init، max_iter، n_initk باستخدام طريقة المرفق (Elbow Method) عبر مجموع مربعات المسافات داخل المجموعة (WCSS)make_blobs تنشئ تجمعات غاوسية متجانسة (Isotropic Gaussian Blobs) مخصصة لتجارب التجميعn_samples، n_features، centers، cluster_std، random_statefrom sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
X, y_true = make_blobs(n_samples=300, n_features=2,
centers=4, cluster_std=0.8,
random_state=42)X ملونا حسب y_true يوضح التجميع "الحقيقي"تهيئة k-means++
اختيار مراكز أولية ذكية
n_init تشغيلات
10 محاولات بتهيئات مختلفة
اختيار الأفضل
أقل قصور ذاتي (Inertia)
kmeans = KMeans(n_clusters=4, init='k-means++',
max_iter=300, n_init=10, random_state=42)
kmeans.fit(X)
labels = kmeans.labels_
centroids = kmeans.cluster_centers_labels)X حمراء فوق الرسمa = متوسط المسافة إلى نقاط نفس المجموعة، b = متوسط المسافة إلى أقرب مجموعة أخرى| القيمة | التفسير |
|---|---|
+1 | تجميع ممتاز |
0 | على الحدود بين مجموعتين |
-1 | تصنيف خاطئ على الأرجح |
WCSS مقابل k من 1 إلى 10 لإظهار "الانحناء" الذي يتباطأ عنده التحسنwcss, silhouette_scores = [], []
for i in range(1, 11):
km = KMeans(n_clusters=i, init='k-means++',
max_iter=300, n_init=10, random_state=42)
km.fit(X)
wcss.append(km.inertia_)y_true من توليد البياناتlabels المتوقعةX حمراء| المقياس | القيمة |
|---|---|
| عدد النقاط | 300 |
| عدد الميزات (Features) | 2 |
| عدد المجموعات الحقيقية | 4 |
الانحراف المعياري cluster_std | 0.8 |
k المستخدم في K-Means | 4 |
| طريقة التهيئة | k-means++ |
WCSS (القصور الذاتي) | 362.472 |
| مقياس السيلويت | 0.834 (ممتاز) |
أفضل k حسب السيلويت | 4 |
k-means++ مع تشغيلات متعددة عبر n_init تتجنب الوقوع في حلول محلية ضعيفةkMahmoud Abas|المعمل الأول: التجميع باستخدام K-Means على بيانات اصطناعية