Какова лучшая стратегия для выбора 2000 лучших функций / слов из 300 000 плюс текстовые функции / слова для подачи в модель классификации - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь построить классификационную модель, которая классифицирует пользователя как «удовлетворенного» или «неудовлетворенного» на основе его прошлых сообщений о взаимодействии с компанией.

Класс «1» означает «не удовлетворен», а класс «0» - «удовлетворен»

Я предварительно обработал все документы / сообщения и создал Count Vectorizer. Без установки каких-либо гиперпараметров, я получил около 300000 дополнительных функций / слов.

      payment failed worst solved . .  . .  . .   Class

doc1     0       0     1      0                     1 
doc2     1       1     0      1                     0 
doc3     1       1     1      0                     1 
doc4     0       0     0      0                     0 
doc5     1       0     0      0                     0 
doc6     0       0     1      0                     1 
.
.
.
.
.

Теперь я думаю о том, как рассчитать вероятность неудовлетворенности пользователя данным Словом для всех слов в матрице, отсортировать значения вероятности и, наконец, выбрать 1000 лучших слов для предсказания.

#Prob of word being present given the user is not satisfied
P(Word | Not Satisfied) = len(data[(data.class==1) & (data.Word==1)])/len(data[data.class==1]) 

#Prob of word  being present given the user is satisfied
P(Word | Satisfied) = len(data[(data.class==0) & (data.Word==1)])/len(data[data.class==0])


P(Not Satisfied) = len(data[data.class==1])/len(data)
P(Satisfied) = 1 - P(Not Satisfied)

#Final Formula
P(Not Satisfied | Word) = P(Word | Not Satisfied)*P(Not Satisfied)/((P(Word | Not Satisfied)*P(Not Satisfied) + P(Word | Satisfied)*P(Satisfied))


Но я подумал спросить другие предложения у этого сообщества ..

Какой, по вашему мнению, лучший подход для выбора лучших функций .. ??

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