אשכולות לעומת תוויות ידועות
חלק מהיחידה למידה בלתי מונחית במסלול ה-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 סוגים, שקובצו לפי אורך ותכולת קפאין: שורה אחת לכל אשכול, עמודה אחת לכל סוג:
כל אשכול מורכב ברובו מסוג אחד; רק 6 שעועיות סטו. ו-k-means מעולם לא ראה תווית.
עם זאת, אשכולות אינם מחלקות. התאמה קרובה פירושה שהמחלקות נבדלות בנתונים. התאמה חלשה היא ממצא, לא באג.
אתגר
בינוניהאם אשכולות k-means מזהים את מיני האירוסים? קוד הפתיחה מתקנן את הפרחים, שומר את שמותיהם ב-species, קורא את k ומקבץ אותם.
- צרו טבלת שכיחויות צולבת של האשכולות מול המינים.
- עבור כל מין, הדפיסו את המספר הגדול ביותר שלו באשכול אחד, מתוך הסך הכול שלו.
- ספרו את האשכולות שמכילים מין יחיד.
עבור גינה אחרת ו-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)
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה בלתי מונחית
3הבנת אשכולות
אפיון אשכולותמרכזים ביחידות ממשיותאשכולות לעומת תוויות ידועותכש־K-Means נכשלסיכום: טעימת תהתרגלו בעצמכם: קומפיילר Python אונליין