Menu
CoddyTech

Ôn tập: Bài kiểm tra sàng lọc

Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 26 trên 58.

challenge icon

Thử thách

Trung bình

Bạn còn nhớ ô các ca bị bỏ sót mà chương này mở đầu không? Một phòng khám sàng lọc mẫu mô để tìm ung thư, và bỏ sót một mẫu ác tính là sai lầm nghiêm trọng nhất. Chương trình đọc mức độ thu hồi mà phòng khám cần; phần code ban đầu tải và chuẩn hóa các mẫu (1 nghĩa là ác tính), đồng thời liệt kê thresholds theo thứ tự nghiêm ngặt nhất trước.

  1. Huấn luyện mô hình hồi quy logistic và in AUC.
  2. Tìm ngưỡng đầu tiên có mức độ thu hồi đạt yêu cầu.
  3. Ở ngưỡng đó, in số lượng và độ chính xác như bên dưới.

Với một phòng khám khác và 0.9:

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

Tự làm thử

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

# Độ nhạy mà phòng khám cần, chẳng hạn 0.95
needed = float(input())

# Mẫu mô: 1 trong y nghĩa là ác tính, trường hợp mà quy trình sàng lọc phải phát hiện
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)

# Các ngưỡng cần thử, bắt đầu từ ngưỡng nghiêm ngặt nhất
thresholds = [0.5, 0.4, 0.3, 0.2, 0.1, 0.05]

# Viết code của bạn bên dưới

Tất cả bài học trong Học có giám sát

Tự luyện tập: Trình biên dịch Python online