Menu
CoddyTech

אשכולות לעומת תוויות ידועות

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

כשיש תוויות, אבל k-means מעולם לא ראה אותן, בדקו מה הוא מצא: pd.crosstab סופרת כל זוג של אשכול ותווית.

labels = KMeans(n_clusters=3, n_init=10, random_state=0).fit_predict(X)
print(pd.crosstab(labels, kind))

עבור 150 פולי קפה מ-3 סוגים, שקובצו לפי אורך ותכולת קפאין: שורה אחת לכל אשכול, עמודה אחת לכל סוג:

טבלה בגודל 3 על 3 של ספירות, האשכולות בשורות וסוגי הקפה בעמודות: ערביקה, ליבריקה, רובוסטה. אשכול 0 מכיל 49 פולי רובוסטה; אשכול 1 מכיל 48 פולי ערביקה, 3 פולי ליבריקה ו-1 פולי רובוסטה; אשכול 2 מכיל 47 פולי ליבריקה ו-2 פולי ערביקה

כל אשכול מורכב ברובו מסוג אחד; רק 6 שעועיות סטו. ו-k-means מעולם לא ראה תווית.

עם זאת, אשכולות אינם מחלקות. התאמה קרובה פירושה שהמחלקות נבדלות בנתונים. התאמה חלשה היא ממצא, לא באג.

challenge icon

אתגר

בינוני

האם אשכולות k-means מזהים את מיני האירוסים? קוד הפתיחה מתקנן את הפרחים, שומר את שמותיהם ב-species, קורא את k ומקבץ אותם.

  1. צרו טבלת שכיחויות צולבת של האשכולות מול המינים.
  2. עבור כל מין, הדפיסו את המספר הגדול ביותר שלו באשכול אחד, מתוך הסך הכול שלו.
  3. ספרו את האשכולות שמכילים מין יחיד.

עבור גינה אחרת ו-k = 3:

setosa: 48 of 50 share a cluster
versicolor: 41 of 50 share a cluster
virginica: 33 of 50 share a cluster
Clusters with one species: 0 of 3

נסו בעצמכם

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# 150 פרחי אירוס לאחר שינוי קנה מידה, ושם המין של כל אחד מהם, שמוסתר מ-k-means
iris = load_iris()
X = StandardScaler().fit_transform(iris.data)
species = iris.target_names[iris.target]

k = int(input())
labels = KMeans(n_clusters=k, n_init=10, random_state=0).fit_predict(X)

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה למידה בלתי מונחית

תרגלו בעצמכם: קומפיילר Python אונליין