Je model inspecteren
Nu je een "fake news"-classifier hebt gebouwd, ga je onderzoeken wat het heeft geleerd. Je kunt de belangrijke vectorgewichten terugvertalen naar echte woorden met een paar eenvoudige inspectietechnieken.
Je goed presterende tfidf Naive Bayes-classifier is beschikbaar als nb_classifier, en de vectoren als tfidf_vectorizer.
Deze oefening maakt deel uit van de cursus
Introductie tot Natural Language Processing in Python
Oefeninstructies
- Sla de klasselabels op als
class_labelsvia het attribuut.classes_vannb_classifier. - Extraheer de features met de methode
.get_feature_names()vantfidf_vectorizer. - Maak een gezipte array van de coëfficiënten van de classifier met de featurenamen en sorteer ze op de coëfficiënten. Gebruik hiervoor eerst
zip()met de argumentennb_classifier.coef_[0]enfeature_names. Gebruik daarnasorted()hierop. - Print de bovenste 20 features met het hoogste gewicht voor het eerste label van
class_labelsen print de onderste 20 features met het laagste gewicht voor het tweede label vanclass_labels. Dit is al voor je gedaan.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Get the class labels: class_labels
class_labels = ____
# Extract the features: feature_names
feature_names = ____
# Zip the feature names together with the coefficient array and sort by weights: feat_with_weights
feat_with_weights = ____(____(____, ____))
# Print the first class label and the top 20 feat_with_weights entries
print(class_labels[0], feat_with_weights[:20])
# Print the second class label and the bottom 20 feat_with_weights entries
print(class_labels[1], feat_with_weights[-20:])