Menu
CoddyTech

מתן שמות לקבוצות

חלק מהיחידה למידה בלתי מונחית במסלול ה-Machine Learning של Coddy. שיעור 46 מתוך 51.

לאשכולות יש מספרים, לא שמות. עכשיו אפשר להשתמש בתוויות: טבלת שכיחויות צולבת סופרת כמה ספרות מכל סוג נמצאות בכל אשכול, כמו הספרות 1, 7 ו־9 האלה ב־3 אשכולות:

טבלה בגודל 3 על 3 של ספירות, האשכולות בשורות והספרות 1, 7 ו־9 בעמודות. המספר הגדול ביותר בכל שורה ממוסגר: באשכול 0 יש 166 ספרות תשע, באשכול 1 יש 176 ספרות שבע, ובאשכול 2 יש 154 ספרות אחת

תן לכל אשכול שם על שם הספרה הנפוצה ביותר בו. הסריקות שלו של הספרה הזאת נחשבות לסיווג נכון:

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

אתגר

בינוני

תנו שמות ל-10 האשכולות שלכם. קוד הפתיחה כולל את 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 אונליין