Menu
CoddyTech

קיבוץ הספרות

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

עכשיו הגילוי. בקש מ-k-means ליצור 10 קבוצות בסריקות של 13 מספרים, אחת לכל ספרה שאתה מקווה שהוא ימצא. הוא אף פעם לא רואה תווית:

km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)

מרכז נמצא במקום שבו k-means עבד, במרחב PCA: 13 מספרים, בלי תמונה. pca.inverse_transform משחזר את 64 הפיקסלים שלו:

משמאל, תרשים עמודות של 13 המספרים של מרכז אחד של k-means, שתי עמודות גבוהות תחילה ואז עמודות קטנות. מימין, אותו מרכז משוחזר כתמונה מטושטשת בגודל 8 על 8 שנראית כמו 0

value_counts() מציגה את האשכולות מהגדול ביותר לקטן ביותר, כך שגלריה של המרכזים נקראת כמו מפקד של הסריקות.

challenge icon

אתגר

בינוני

הקוד ההתחלתי כולל את הסריקות ואת X_small, הגרסאות שלהן עם 13 מספרים.

  1. מצאו 10 אשכולות ב-X_small בעזרת k-means.
  2. שחזרו את 64 הפיקסלים של כל מרכז.
  3. ציירו גלריה של 2 על 5, כשהאשכול הגדול ביותר מופיע ראשון: הציגו כל מרכז כתמונה בגודל 8 על 8 ב-gray_r, עם כותרת המציינת את גודלו, למשל 120 scans. סדרו את הפריסה והציגו אותה.

עם 5 אשכולות, זה היה נראה כך:

חמישה מרכזים מטושטשים של ספרות בשורה, עם הכותרות 531, 367, 363, 359 ו-177 סריקות

שלכם כולל עשרה. Coddy מתאר כל תרשים. אילו ספרות k-means מצא בעצמו?

נסו בעצמכם

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# מתוך Look at the Digits: 1,797 סריקות של 64 פיקסלים, ערכי דיו מ-0 עד 16
digits = load_digits()
X = digits.data
y = digits.target

# מתוך Shrink with PCA: 80% מהשונות ב-13 מספרים לכל סריקה
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

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

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

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

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