Menu
CoddyTech

Karar Eşiği

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 17 / 58.

predict, olasılık 0.5 olan eşik değerini aştığında evet der. Ancak arızalı bir ekranı gözden kaçırmanın maliyeti, ikinci kez kontrol etmekten daha yüksek olabilir. Eşiği düşürün:

Arızalı olma olasılığına göre sıralanmış bir çizgi üzerinde on dört telefon ekranı: altı arızalı kare, sekiz sorunsuz nokta. 0.5 eşik değerinde, 6 arızanın 4'ü 1 yanlış alarm ile yakalanır; 0.3'te ise 6'sının tamamı 4 yanlış alarm ile yakalanır

Yanlış alarm, sorunsuz bir ekranın işaretlenmesidir. Bir karşılaştırma kullanarak kendi eşik değerinizi seçin:

proba = model.predict_proba(X_test)[:, 1]
flag = proba >= 0.3  # True: bu ekranı kontrol et

Eşik düşürüldüğünde daha fazla gerçek vakayı yakalar ve daha fazla yanlış alarm verir; eşik yükseltildiğinde ise tersi olur. Olasılıklar hiç değişmez, yalnızca eşik değişir.

Her bir hatanın maliyetine göre seçin.

challenge icon

Görev

Orta

Bir hava yolu şirketi, yolcuların aktarmalarını kaçırma olasılığı yüksekse onlar daha uçağa inmeden yeniden rezervasyon yapar. Başlangıç kodu, connections.csv üzerinde bir model eğitir ve bir eşik değeri okur.

  1. Test yolcularının aktarmalarını kaçırma olasılıklarını elde edin.
  2. Önce 0.5, ardından eşik değeri için yeniden rezervasyon yapılan yolcuları, yakalanan gerçek kaçırmaları (tüm kaçırmalar arasından) ve gereksiz yeniden rezervasyonları sayın.
  3. Her eşik değeri için bir satır yazdırın.

Başka bir hava yolu şirketi ve 0.25 için:

Threshold 0.5: 9 rebooked, 7 of 15 misses caught, 2 needless rebookings
Threshold 0.25: 21 rebooked, 13 of 15 misses caught, 8 needless rebookings

Kendin dene

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Her yolcu için bir satır: aktarma süresi ve gelen uçuşun gecikmesi dakika cinsinden, terminal değişikliği (1 veya 0), kayıtlı bagajlar; missed değeri 1 veya 0
trips = pd.read_csv("connections.csv")
features = ["layover_min", "delay_min", "terminal_change", "checked_bags"]
X_train, X_test, y_train, y_test = train_test_split(trips[features], trips["missed"], test_size=0.25, random_state=0)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
threshold = float(input())

# Kodunuzu aşağıya yazın
quiz iconKendini test et

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

Kendi başına pratik yap: Online Python derleyicisi