Začněte nyníZačněte zdarma

Všechno dohromady

Kromě pipeline pro detekci anomálií pomocí učení na základě vzdálenosti, kterou jsi sestavil/a v předchozím cvičení, chceš přidat i pipeline využívající jednotřídní SVM pro učení na základě příznaků. Rozhodneš se extrahovat dva příznaky: délku řetězce a numerické zakódování prvního písmene řetězce pomocí funkce LabelEncoder() popsané v kapitole 1. Aby bylo srovnání férové, zadáš skóre odlehlosti do výpočtu AUC. Importovány jsou: LabelEncoder(), roc_auc_score() jako auc() a OneClassSVM. Data jsou dostupná jako datový rámec pandas s názvem proteins se dvěma sloupci, label a seq, a dvěma třídami: IMMUNE SYSTEM a VIRUS. Natrénovaný detektor LoF je dostupný jako lof_detector.

Toto cvičení je součástí kurzu

Designing Machine Learning Workflows in Python

Zobrazit kurz

Pokyny k cvičení

  • Pro řetězec s vrátí len(s) jeho délku. Aplikuj to na sloupec seq a získej nový sloupec len.
  • Pro řetězec s vrátí list(s) seznam jeho znaků. Pomocí toho extrahuj první písmeno každé sekvence a zakóduj ho pomocí LabelEncoder().
  • Skóre LoF jsou uložena v atributu negative_outlier_factor_. Vypočítej jejich AUC.
  • Natrénuj jednotřídní SVM na datovém rámci obsahujícím pouze sloupce len a first. Extrahuj skóre a vyhodnoť jak skóre LoF, tak skóre SVM pomocí AUC.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Create a feature that contains the length of the string
proteins['len'] = proteins['seq'].apply(____)

# Create a feature encoding the first letter of the string
proteins['first'] =  ____.____(
  proteins['seq'].apply(____))

# Extract scores from the fitted LoF object, compute its AUC
scores_lof = lof_detector.____
print(____(proteins['label']==____, scores_lof))

# Fit a 1-class SVM, extract its scores, and compute its AUC
svm = ____.____(proteins[['len', 'first']])
scores_svm = svm.____(proteins[['len', 'first']])
print(____(proteins['label']==____, scores_svm))
Upravit a spustit kód