Menu
CoddyTech

Rangkuman: Tes Skrining

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

challenge icon

Tantangan

Sedang

Ingat sel yang menunjukkan kasus terlewat pada awal bab ini? Sebuah klinik memeriksa sampel jaringan untuk mendeteksi kanker, dan sampel ganas yang terlewat adalah kesalahan terburuk. Program membaca nilai recall yang dibutuhkan klinik; kode awal memuat dan menstandarkan sampel (1 berarti ganas) serta mencantumkan thresholds, dimulai dari yang paling ketat.

  1. Latih regresi logistik dan cetak AUC-nya.
  2. Temukan threshold pertama yang recall-nya mencapai kebutuhan.
  3. Pada threshold tersebut, cetak jumlah dan presisi seperti di bawah ini.

Untuk klinik lain dan 0.9:

AUC: 0.981
Threshold: 0.4
Caught 47 of 51 malignant samples
False alarms: 2
Precision: 0.959

Coba sendiri

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, recall_score, precision_score, confusion_matrix

# Nilai recall yang dibutuhkan klinik, misalnya 0.95
needed = float(input())

# Sampel jaringan: 1 dalam y berarti ganas, kasus yang harus terdeteksi saat skrining
cancer = load_breast_cancer()
X = cancer.data
y = 1 - cancer.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Nilai ambang yang akan dicoba, mulai dari yang paling ketat
thresholds = [0.5, 0.4, 0.3, 0.2, 0.1, 0.05]

# Tulis kodemu di bawah ini

Semua pelajaran di Pembelajaran Terawasi

Latihan sendiri: Compiler Python online