Я пробую многочленную классификацию NB для набора данных и пытаюсь получить наиболее важные характеристики как положительных, так и отрицательных классов.
Я сделал следующее.
Данные уже разбиты наtrain, cv, test.
- Одна горячая кодировка категориальности и нормализации числовых функций
- Сумма кодирования слов на нескольких других функциях
- , сложенная из всехони используют hstack, так что теперь у нас есть x_train, x_cv, x_test с матрицей данных формы (78743, 22402) (78743,) (38785, 22402) (38785,) (57888, 22402) (57888,)
- Я использовал GridSearchCV и построил кривую ROC, чтобы найти наилучшую альфа.
- Затем я построил несколько графиков ошибок и получил матрицы путаницы и т. Д.
- Теперь я пытаюсь извлечь 10 лучшихфункции как из положительного, так и из отрицательного классов.
Я использовал приведенный ниже код для их извлечения
class_labels = nb.classes_
feature_names =vectorizer_bow.get_feature_names()
top_neg_class = sorted(zip(nb.feature_count_[0], feature_names),reverse=True)[:10]
top_pos_class = sorted(zip(nb.feature_count_[1], feature_names),reverse=True)[:10]
print("Important words in positive reviews")
for coef, feature in top_pos_class:
print(class_labels[1], coef, feature)
print("Important words in negative reviews")
for coef, feature in top_neg_class:
print(class_labels[0], coef, feature)
Выше приведены результаты в следующем формате:
Important words in positive reviews
1 22048.0 active
1 20245.0 after
1 16905.0 adding
1 15594.0 adventures
1 14733.0 actively
1 14272.0 actors
1 6827.0 feeding
1 6527.0 soft
1 6511.0 wide
1 6367.0 adaptive
У меня нет возможности сравнивать и выяснять, действительно ли это топ-10.
Я пытаюсь попробовать это по-другому и не могу реализовать это.Поэтому я ищу помощи для реализации логики следующим образом:
1. Нужно получить максимальные значения индекса.2. Мы уже знаем hstacked функции и их размеры.Необходимо проверить слово в измерении и напечатать это слово.
Предположим, у нас есть текст + эссе + категориальный, чтобы текст имел размерность 120, эссе 120, категориальный 10 hstack таким образом (текст + эссе + категориальный) 120+120 + 10 = 250 измерений. Пусть важными индексами являются 10 196 243.для индекса 10 поиск в тексте, 196 в эссе, 243 в категориальном