Как мне указать, что некоторые особенности (слова) и определенные документы важнее других в Наивном Байесе? - PullRequest
0 голосов
/ 23 сентября 2019

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

1 Ответ

0 голосов
/ 24 сентября 2019

Если вы используете CountVectorizer , вы можете получить количество вхождений (частоту) каждого слова в текстовом корпусе:

vec = CountVectorizer().fit(corpus)
bag_of_words = vec.transform(corpus)
sum_words = bag_of_words.sum(axis=0) 
words_freq = [(word, sum_words[0, idx]) for word, idx in     vec.vocabulary_.items()]
words_freq =sorted(words_freq, key = lambda x: x[1], reverse=True)

Вы также можете получить важность каждой функции (слово) на основе одномерного статистического теста с использованием SelectKBest :

from sklearn.feature_selection import SelectKBest, chi2
...
skb = SelectKBest(chi2, k="all").fit(X, y)

feature_importnace = skb.scores_

Путем обучения RandomForestClassifier:

from sklearn.ensemble import RandomForestClassifier

clf = RandomForestClassifier()

model = clf.fit(X, y)

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