Menu
CoddyTech

Recapitulação: Teste de Triagem

Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 26 de 58.

challenge icon

Desafio

Médio

Lembra-se da célula de casos não detectados com que este capítulo começou? Uma clínica examina amostras de tecido para detectar câncer, e deixar passar uma amostra maligna é o pior erro. O programa lê a revocação de que a clínica precisa; o código inicial carrega e dimensiona as amostras (1 significa maligno) e lista thresholds, da mais rigorosa para a menos rigorosa.

  1. Treine uma regressão logística e imprima sua AUC.
  2. Encontre o primeiro limiar cuja revocação atinja o valor necessário.
  3. Para esse limiar, imprima as contagens e a precisão, como abaixo.

Para outra clínica e 0.9:

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

Experimente você mesmo

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

# A sensibilidade de que a clínica precisa, como 0.95
needed = float(input())

# Amostras de tecido: 1 em y significa maligno, o caso que a triagem precisa detectar
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)

# Limiares a testar, começando pelo mais rigoroso
thresholds = [0.5, 0.4, 0.3, 0.2, 0.1, 0.05]

# Escreva seu código abaixo

Todas as lições de Aprendizado supervisionado

Pratique por conta própria: Compilador de Python online