Menu
CoddyTech

Rückblick: Screeningtest

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 26 von 58.

challenge icon

Aufgabe

Mittel

Erinnerst du dich an die Zelle für übersehene Fälle, mit der dieses Kapitel begann? Eine Klinik untersucht Gewebeproben auf Krebs, und eine übersehene bösartige Probe ist der schlimmste Fehler. Das Programm liest die von der Klinik benötigte Sensitivität ein; der Starter lädt und skaliert die Proben (1 bedeutet bösartig) und listet thresholds auf, beginnend mit dem strengsten Schwellenwert.

  1. Trainiere eine logistische Regression und gib ihre AUC aus.
  2. Finde den ersten Schwellenwert, bei dem die Sensitivität den Bedarf erreicht.
  3. Gib bei diesem Schwellenwert die Zählwerte und die Präzision wie unten aus.

Für eine andere Klinik und 0.9:

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

Probier es selbst

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

# Der Recall, den die Klinik benötigt, zum Beispiel 0.95
needed = float(input())

# Gewebeproben: 1 in y bedeutet bösartig – der Fall, den das Screening erkennen muss
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)

# Zu testende Schwellenwerte, beginnend mit dem strengsten
thresholds = [0.5, 0.4, 0.3, 0.2, 0.1, 0.05]

# Schreibe deinen Code unten

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler