Menu
CoddyTech

שני המאפיינים הטובים ביותר

חלק מהיחידה סטטיסטיקה ללמידת מכונה במסלול ה-Machine Learning של Coddy. שיעור 59 מתוך 64.

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

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

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

עוד בדיקה: האם אלה שני עותקים כמעט זהים?

first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))

זה מדפיס 0.85: קשור, לא עותקים. ב־0.99 המאפיין השני היה חוזר על הראשון וכמעט לא מוסיף דבר חדש.

challenge icon

אתגר

בינוני

מאפייני error מודדים עד כמה מדידה השתנתה בין התאים של דגימה אחת. האם שני המאפיינים החזקים ביותר יכולים להבחין בין המחלקות? קוד ההתחלה מדרג אותם ומכניס אותם למשתנים first ו-second; הפונקציה label(ax) נותנת שמות לתרשים.

  1. הדפיסו את r between them: ואת ערך r שלהם, עם 2 ספרות אחרי הנקודה העשרונית.
  2. ציירו תרשים פיזור אחד לכל מחלקה, כאשר first נמצא על הציר האופקי, וסמנו כל מחלקה בשם שלה.
  3. קראו ל-label(ax), הוסיפו מקרא והציגו אותו.

כך זה נראה עבור הצמד החזק ביותר של worst (r = 0.82):

תרשים פיזור שכותרתו Worst Features, כאשר worst concave points נמצא על הציר האופקי ו-worst perimeter על הציר האנכי; דגימות ממאירות בכחול נמצאות למעלה ומימין, ודגימות שפירות בכתום נמצאות למטה ומשמאל

כעת בחנו את התרשים שלכם: האם העננים נפרדים? ובהתחשב בערך ה-r שלכם, האם הם נראים כמו עותקים?

נסו בעצמכם

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# עשרת מאפייני השגיאה: עד כמה כל מדידה השתנתה בין התאים של דגימה אחת
X = cancer.data[cancer.feature_names[10:20]]

# מדורגים לפי עוצמה: first ו-second הם שני החזקים ביותר
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]


# מגדירה את כותרת התרשים ונותנת לצירים את שמות שני המאפיינים
def label(ax):
    ax.set_title("Error Features")
    ax.set_xlabel(first)
    ax.set_ylabel(second)


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

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

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

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