Мультивинальный выбор NaiveBayes Top Feature с использованием HSTACK - PullRequest
0 голосов
/ 21 апреля 2019

Я пробую многочленную классификацию NB для набора данных и пытаюсь получить наиболее важные характеристики как положительных, так и отрицательных классов.

Я сделал следующее.

Данные уже разбиты наtrain, cv, test.

  1. Одна горячая кодировка категориальности и нормализации числовых функций
  2. Сумма кодирования слов на нескольких других функциях
  3. , сложенная из всехони используют hstack, так что теперь у нас есть x_train, x_cv, x_test с матрицей данных формы (78743, 22402) (78743,) (38785, 22402) (38785,) (57888, 22402) (57888,)
  4. Я использовал GridSearchCV и построил кривую ROC, чтобы найти наилучшую альфа.
  5. Затем я построил несколько графиков ошибок и получил матрицы путаницы и т. Д.
  6. Теперь я пытаюсь извлечь 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 в категориальном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...