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
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, ____))