Menu
CoddyTech

Ambang Keputusan

Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 17 dari 58.

predict menghasilkan ya ketika peluangnya melewati 0.5, yaitu ambang batas. Namun, layar rusak yang terlewat mungkin lebih merugikan daripada pemeriksaan kedua. Turunkan ambang batasnya:

Empat belas layar ponsel pada garis yang menunjukkan peluang kerusakannya: enam kotak rusak, delapan titik baik. Pada ambang batas 0.5, 4 dari 6 kerusakan terdeteksi dengan 1 alarm palsu; pada 0.3, semua 6 terdeteksi dengan 4 alarm palsu

Alarm palsu adalah layar yang sebenarnya baik, tetapi ditandai. Pilih ambang batasmu sendiri menggunakan perbandingan:

proba = model.predict_proba(X_test)[:, 1]
flag = proba >= 0.3  # True: periksa layar ini

Nilai yang lebih rendah menangkap lebih banyak kasus nyata dan menghasilkan lebih banyak alarm palsu; nilai yang lebih tinggi menghasilkan kebalikannya. Peluangnya tidak pernah berubah, hanya ambang batasnya.

Pilih berdasarkan biaya dari setiap kesalahan.

challenge icon

Tantangan

Sedang

Sebuah maskapai memesan ulang penerbangan penumpang yang kemungkinan besar akan ketinggalan penerbangan lanjutan mereka sebelum mereka mendarat. Kode awal melatih model dengan connections.csv dan membaca nilai ambang.

  1. Dapatkan peluang penumpang uji ketinggalan penerbangan lanjutan.
  2. Untuk 0.5, lalu nilai ambang, hitung jumlah penumpang yang penerbangannya dipesan ulang, penumpang yang benar-benar ketinggalan penerbangan dan berhasil terdeteksi (dari seluruh penumpang yang ketinggalan), serta pemesanan ulang yang tidak perlu.
  3. Cetak satu baris untuk setiap nilai ambang.

Untuk maskapai lain dan 0.25:

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

Coba sendiri

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

# Satu baris untuk setiap penumpang: waktu transit dan keterlambatan penerbangan masuk dalam menit, pergantian terminal (1 atau 0), bagasi terdaftar; missed bernilai 1 atau 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())

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Terawasi

Latihan sendiri: Compiler Python online