Karmaşıklık Matrisi
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 21 / 58.
Doğruluk, hataları sayar; türlerini değil. Grip testi için hasta birini eve göndermek, yanlış alarmdan çok daha kötüdür. Bir confusion_matrix her türü sayar:
Grip pozitif sınıftır, 1. Hatalar köşegenin dışındadır: yanlış pozitifler (yanlış alarmlar) ve yanlış negatifler (kaçırılan vakalar).
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
cm = confusion_matrix(y_test, pred) # önce gerçek değerler
print(cm)
print(cm[1, 0]) # satır 1: grip, sütun 0: sağlıklı olarak tahmin edildi
ConfusionMatrixDisplay.from_predictions(y_test, pred, display_labels=["healthy", "flu"],
ax=ax, colorbar=False) # renk çubuğu yok: sayılar durumu anlatıyorŞu çıktıyı verir:
[[50 3]
[ 5 42]]
5Bu bölüm, kaçırılan vakalar hücresini küçültmekle ilgili. Neredeyse hiç kimseyi kaçırmayan bir tarama testiyle sona eriyor.
Görev
OrtaCankurtaranlar, bir rip akıntısı oluşabileceğinde sabah uyarısı alır. Başlangıç kodu, uyarı modelini eğitir ve test sabahları için pred değerlerini doldurur (1, rip akıntısı anlamına gelir).
- Aşağıdaki gibi karmaşıklık matrisini oluştur ve dört sayıyı yazdır.
- Matrisi
axüzerindecalmveripetiketleriyle çiz ve göster.
Başka bir model için:
Rips caught: 30
Rips missed: 2
False alarms: 9
Calm days cleared: 59Coddy grafiğini açıklıyor. Grafik, boru sızıntısı alarmı için aşağıdaki gibi görünmelidir:
Kendin dene
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
# Sörf plajında her sabah için bir satır: rip sütunundaki 1, o gün bir çeken akıntı oluştuğu anlamına gelir
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)
# Cankurtaranların çeken akıntı uyarısı
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")
# Kodunuzu aşağıya yazın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Denetimli Öğrenme bölümündeki tüm dersler
1İlk Modeliniz
Örneklerden ÖğrenmeEğitim ve Test KümeleriUydurma ve Tahmin EtmeBir Modeli PuanlamaÖzet: Tohum Sınıflandırıcı4Lojistik Regresyon
Evet-Hayır TahminleriKarar EşiğiKanıt Olarak AğırlıklarBirden Fazla SınıfÖzet: Spam Filtresi2En Yakın Komşular
k-NN Nasıl Karar Verirk'yi SeçmekKarar SınırlarıKomşular İçin ÖlçeklemeÖzet: Şarap Komşuları5Sınıflandırıcıları Değerlendirme
Karmaşıklık MatrisiKesinlik ve DuyarlılıkF1 SkoruDengesiz SınıflarROC EğrileriÖzet: Tarama Testi8Çapraz Doğrulama
K-Katlı DoğrulamaModelleri Adil Bir Şekilde KarşılaştırmaIzgara AramasıÖzet: Kaykay Tamiri11Proje: Penguen Türleri
Penguenlerle TanışınVerileri HazırlayınBir Model SeçinEn İyisini AyarlayınModeli Yayına AlınKendi başına pratik yap: Online Python derleyicisi