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

Práce se zašuměnými štítky

Jeden z tvých kybernetických analytiků tě informuje, že mnoho štítků pro prvních 100 zdrojových počítačů v trénovacích datech může být chybných kvůli databázové chybě. Doufá, že data bude přesto možné použít, protože většina štítků je stále správná, ale žádá tě, abys těchto 100 štítků považoval/a za „zašuměné". Naštěstí víš, jak na to – pomocí váženého učení. Kontaminovaná data jsou v tvém pracovním prostoru dostupná jako X_train, X_test, y_train_noisy, y_test. Chceš zjistit, zda lze výkon klasifikátoru GaussianNB() zlepšit právě díky váženému učení. Můžeš použít volitelný parametr sample_weight, který podporuje metoda .fit() u většiny populárních klasifikátorů. Funkce accuracy_score() je předem načtena. Orientační schéma najdeš na obrázku níže.

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

Designing Machine Learning Workflows in Python

Zobrazit kurz

Pokyny k cvičení

  • Natrénuj instanci GaussianNB() na trénovacích datech se zašuměnými štítky.
  • Pomocí accuracy_score() zjisti přesnost modelu na testovacích datech.
  • Vytvoř váhy tak, aby správným (ground truth) štítkům byla přiřazena dvojnásobná váha oproti zašuměným. Nezapomeň, že váhy se vztahují na trénovací data.
  • Natrénuj klasifikátor znovu s těmito vahami a znovu zjisti jeho přesnost.

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

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

# Fit a Gaussian Naive Bayes classifier to the training data
clf = ____.____(____, y_train_noisy)

# Report its accuracy on the test data
print(accuracy_score(y_test, ____.____(X_test)))

# Assign half the weight to the first 100 noisy examples
weights = [____]*100 + [1.0]*(len(____)-100)

# Refit using weights and report accuracy. Has it improved?
clf_weights = GaussianNB().fit(X_train, y_train_noisy, ____=____)
print(accuracy_score(y_test, ____))
Upravit a spustit kód