רכיבים כדפוסים
חלק מהיחידה למידה בלתי מונחית במסלול ה-Machine Learning של Coddy. שיעור 30 מתוך 51.
על מה הסתכלה PCA? כל רכיב מורכב מ־64 משקולות, אחת לכל פיקסל, ו־components_ מכיל שורה אחת לכל רכיב:
pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)הדבר מדפיס (4, 64). שינוי הצורה של שורה למערך בגודל 8 על 8 הופך אותה לתמונה. cmap="gray_r" פירושו גווני אפור הפוכים: משקלים גדולים כהים, ומשקלים שליליים בהירים:
ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")רכיב 1 כהה במקומות שבהם ל־4 ול־6 יש דיו, ולכן הם ממוקמים בצד ימין של המפה. סריקה מקבלת ניקוד גבוה כשהדיו שלה נופל על פיקסלים כהים.
אתגר
בינונימורה לקליגרפיה רוצה לראות את הדרכים שבהן אנשים כותבים ספרה אחת. התוכנית קוראת את הספרה, ותוכנית הפתיחה שומרת את הסריקות שלה ב־X.
- התאם PCA עם 3 רכיבים ל־
X. - צייר את הרכיב
iעלaxs[i]כתמונה בגודל 8 על 8 עםcmap="gray_r", שכותרותיהןComponent 1עדComponent 3. - הצג את התרשים.
עבור הספרות 2, מתקבלת התמונה הזו. לאחר מכן Coddy מתאר את הלוחות שלך:
נסו בעצמכם
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# כל סריקה של ספרה אחת, הנקראת מהקלט: 64 פיקסלים בכל שורה
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]
# אין לשנות את השורה שלמטה
fig, axs = plt.subplots(1, 3)
# כתבו את הקוד שלכם למטה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה למידה בלתי מונחית
תרגלו בעצמכם: קומפיילר Python אונליין