Menu
CoddyTech

שונות מוסברת

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

כמה שמרו 2 רכיבים? כל רכיב מחזיק בחלק מהפיזור הכולל, יחס השונות המוסברת שלו. עבור כל 13 רכיבי היין:

עמודות עבור 13 רכיבי יין שהולכות וקטנות מ־0.36 לכמעט 0, וקו כתום שמסכם אותן ומטפס מ־0.36 ל־1. הוא חוצה את קו ה־90% המקווקו ברכיב 8

PCA() ללא n_components שומר על כולם. np.cumsum מחזירה את הסכום המצטבר:

pca = PCA().fit(scaled)
ratio = pca.explained_variance_ratio_
print(ratio[:3].round(3))
total = np.cumsum(ratio)
print((total < 0.9).sum() + 1)

הדבר מדפיס [0.362 0.192 0.111] ו-8: הסכומים עדיין מתחת ל-0.9, בתוספת זה שחוצה את הסף. לכן מפת היין הדו־ממדית שמרה על 55%.

challenge icon

אתגר

בינוני

מעבדה לשוקולד מודדת 9 דברים בכל חפיסה. כמה רכיבים שומרים על 90% מהפיזור? scaled מוכן.

  1. התאם PCA() וקח את החלק של כל רכיב.
  2. הדפס כמה רכיבים מגיעים ל־90%.
  3. צייר את החלקים כעמודות ב־1, 2, 3... עם התווית each component; את הסכום המצטבר כקו עם marker="o", עם התווית running total; קו אפור מקווקו ב־0.9; ומקרא. הצג אותו.

עבור מעבדה אחרת:

Components for 90%: 4

תרשים שכותרתו הפיזור שנשמר על ידי כל רכיב, עבור 7 רכיבים: העמודות מצטמצמות מ־0.42, הסכום המצטבר עולה עד 1 וחוצה את קו ה־0.9 המקווקו ברכיב 4, ומקרא

נסו בעצמכם

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

# מעבדה של יצרן שוקולד: 9 מדידות לכל אחת מ-150 טבלאות שוקולד
bars = pd.read_csv("chocolate.csv")
scaled = StandardScaler().fit_transform(bars)

fig, ax = plt.subplots()
ax.set_title("Spread Kept by Each Component")
ax.set_xlabel("Component")
ax.set_ylabel("Share of spread")

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

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

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

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