Inspecciona tu modelo
Ahora que has creado un clasificador de «fake news», vas a investigar qué ha aprendido. Puedes volver a mapear los pesos importantes del vector a palabras reales usando técnicas sencillas de inspección.
Tienes disponible tu clasificador Naive Bayes con tfidf que funciona bien como nb_classifier, y los vectores como tfidf_vectorizer.
Este ejercicio forma parte del curso
Introducción al Natural Language Processing en Python
Instrucciones del ejercicio
- Guarda las etiquetas de clase como
class_labelsaccediendo al atributo.classes_denb_classifier. - Extrae las características usando el método
.get_feature_names()detfidf_vectorizer. - Crea un array combinado (zip) de los coeficientes del clasificador con los nombres de las características y ordénalo por los coeficientes. Para ello, primero usa
zip()con los argumentosnb_classifier.coef_[0]yfeature_names. Luego, aplicasorted()a esto. - Imprime las 20 características con mayor peso para la primera etiqueta de
class_labelse imprime las 20 con menor peso para la segunda etiqueta declass_labels. Esto ya está hecho por ti.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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:])