Menu
CoddyTech

מטריצת הבלבול

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

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

רשת 2 על 2 לבדיקת שפעת בקרב 100 מטופלים. השורות מציגות את האמת: בריא ואז חולה בשפעת; העמודות מציגות את התשובה: סווג כבריא ואז סווג כחולה בשפעת. תשובות נכונות בכחול: 50 שליליים אמיתיים, 42 חיוביים אמיתיים. טעויות בכתום: 3 חיוביים כוזבים, 5 שליליים כוזבים

שפעת היא המחלקה החיובית, 1. הטעויות נמצאות מחוץ לאלכסון: חיוביים שגויים (אזעקות שווא) ושליליים שגויים (מקרים שלא זוהו).

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

cm = confusion_matrix(y_test, pred)  # נתוני האמת תחילה
print(cm)
print(cm[1, 0])  # שורה 1: חולה בשפעת, עמודה 0: סווג כבריא
ConfusionMatrixDisplay.from_predictions(y_test, pred, display_labels=["healthy", "flu"],
                                        ax=ax, colorbar=False)  # ללא סרגל צבעים: הספירות מדברות בעד עצמן

זה מדפיס:

[[50  3]
 [ 5 42]]
5

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

challenge icon

אתגר

בינוני

מצילים מקבלים התראה בבוקר כאשר ייתכן שייווצר זרם סחף. קוד הפתיחה מאמן את מודל ההתראה וממלא את pred עבור בקרים של נתוני הבדיקה (1 פירושו זרם סחף).

  1. צרו את מטריצת הבלבול והדפיסו את ארבעת המספרים כפי שמוצג למטה.
  2. ציירו אותה על ax, עם התוויות calm ו-rip, והציגו אותה.

עבור מודל אחר:

Rips caught: 30
Rips missed: 2
False alarms: 9
Calm days cleared: 59

Coddy מתאר את התרשים שלך. הוא אמור להיראות כמו התרשים הזה, שמציג התראה על דליפת צינור:

מטריצת בלבול שכותרתה התראות על דליפה. השורות הן התוויות האמיתיות, יבש ואז דליפה; העמודות הן התוויות החזויות. התאים: 61 ו-4 בשורת היובש, 7 ו-28 בשורת הדליפה

נסו בעצמכם

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

# שורה אחת לכל בוקר בחוף גלישה: 1 ב-rip פירושו שנוצר זרם סחף באותו יום
beach = pd.read_csv("rips.csv")
features = ["wave_height_m", "wave_period_s", "wind_kmh", "tide_change_m"]
X = beach[features]
y = beach["rip"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# התרעת המצילים על זרם סחף
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
pred = model.predict(X_test)

fig, ax = plt.subplots()
ax.set_title("Rip Current Alerts")

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

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

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

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