Menu
CoddyTech
flag Ar iconالعربيةdown icon

مصفوفة الالتباس

جزء من قسم التعلّم الخاضع للإشراف في رحلة 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 عبر الإنترنت