Inspektion deines Modells
Jetzt, wo du einen "Fake News"-Klassifikator erstellt hast, wirst du untersuchen, was er gelernt hat. Du kannst die wichtigen Vektorgewichte mit einigen einfachen Inspektionstechniken auf die tatsächlichen Wörter zurückführen.
Du hast deinen gut funktionierenden tfidf Naive Bayes Klassifikator als nb_classifier
und die Vektoren als tfidf_vectorizer
zur Verfügung.
Diese Übung ist Teil des Kurses
Einführung in die natürliche Sprachverarbeitung in Python
Anleitung zur Übung
- Speichere die Klassenbezeichnungen als
class_labels
, indem du auf das Attribut.classes_
vonnb_classifier
zugreifst. - Extrahiere die Merkmale mit der Methode
.get_feature_names()
vontfidf_vectorizer
. - Erstelle ein gezipptes Array der Klassifikator-Koeffizienten mit den Merkmalsnamen und sortiere sie nach den Koeffizienten. Dazu verwendest du zunächst
zip()
mit den Argumentennb_classifier.coef_[0]
undfeature_names
. Dann verwendesorted()
dafür. - Drucke die oberen 20 gewichteten Merkmale für das erste Label von
class_labels
und die unteren 20 gewichteten Merkmale für das zweite Label vonclass_labels
. Das haben wir für dich getan.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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:])