Menu
CoddyTech
flag Ar iconالعربيةdown icon

أطلق أسماء على المجموعات

جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 46 من 51.

تأتي العناقيد بأرقام، لا بأسماء. يمكنك الآن استخدام التسميات: يحصي الجدول التقاطعي الأرقام التي وقعت في كل عنقود، مثل الأرقام 1 و7 و9 هذه في 3 عناقيد:

جدول 3 في 3 للعدّ، العناقيد في الصفوف والأرقام 1 و7 و9 في الأعمدة. أُحيط بأكبر عدد في كل صف: يحتوي العنقود 0 على 166 من الرقم 9، والعنقود 1 على 176 من الرقم 7، والعنقود 2 على 154 من الرقم 1

سمِّ كل عنقود باسم الرقم الأكثر شيوعًا فيه. تُحتسب عيناته من ذلك الرقم على أنها مُصنَّفة بشكل صحيح:

ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1)      # العمود ذو أكبر قيمة في كل صف
right = ct.max(axis=1).sum()
print(names.tolist(), right)

يطبع هذا [9, 7, 1] 496: 496 من أصل 541 عملية فحص سُمّيت على نحو صحيح، بواسطة مجموعات عُثر عليها دون تسمية واحدة.

challenge icon

التحدي

متوسط

أطلق أسماءً على مجموعاتك العشر. يتضمن الكود الأولي km، الذي جرى تدريبه دون تسميات؛ والآن يمكنك استخدام الأرقام في y.

  1. أنشئ جدولًا تقاطعيًا للمجموعات مقابل y، وسمِّ كل مجموعة باسم الرقم الأكثر شيوعًا فيها.
  2. رتّب حسب الأسماء، واطبع عدد المسوحات التي سُمّيت أرقامها بشكل صحيح في كل مجموعة، وحجمها ونسبتها الصحيحة، كنسبة مئوية صحيحة.
  3. اطبع إجمالي المسوحات التي سُمّيت أرقامها بشكل صحيح، مع النسبة المئوية إلى منزلة عشرية واحدة.

لـ 5 مجموعات:

Cluster named 0: 175 of 177 scans (99%)
Cluster named 2: 160 of 367 scans (44%)
Cluster named 3: 168 of 531 scans (32%)
Cluster named 6: 179 of 359 scans (50%)
Cluster named 7: 176 of 363 scans (48%)
Named right without labels: 858 of 1797 scans (47.7%)

أيٌّ من مجموعاتك أضعف، وما الذي تخفيه؟

جرّب بنفسك

import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# من «انظر إلى الأرقام»: 1,797 صورة ممسوحة، تتكون كل منها من 64 بكسل، وقيم الحبر من 0 إلى 16
digits = load_digits()
X = digits.data
y = digits.target

# من «تقليص الأبعاد باستخدام PCA»: 80% من التباين في 13 رقمًا لكل صورة ممسوحة
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

# من «تجميع الأرقام»: 10 مجموعات، حُدّدت دون تسميات
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم غير الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت