Подгонка модели дает ошибку (ValueError: не удалось преобразовать строку в число с плавающей точкой :) - PullRequest
0 голосов
/ 20 сентября 2019

Использование наивного байесовского алгоритма

from sklearn.naive_bayes import MultinomialNB

nb = MultinomialNB()

Код работает до этой строки, но когда я подгоняю модель, он показывает ошибку.

nb.fit(X_train, y_train)

Вывод:

ValueError: could not convert string to float: 'My fiance and 
I tried the place because of a Groupon.  We live in the same neighborhood 
and see the place all the time but the look of the place was never enough 
to draw us in.  There is nothing eye catching about the business front at 
all.  It\'s in a strip mall and looks old..........

Я использую набор данных yelp.csv для обработки естественного языка

Ожидаемый ответ должен быть таким:

MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)

1 Ответ

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

Вы получаете эту ошибку, потому что метод fit для MultinomialNB требует матрицы X значений с плавающей запятой, а не текста, как я полагаю, вы предоставляете.

Чтобы сгенерировать правильную матрицу X , вам нужно вычислить все вероятности для каждого класса в вашей задаче (скажем, хороший или плохой, вы не указываете классы в своей задаче),распределение вероятностей вашего словарного запаса и вероятности ваших терминов для каждого класса.После того как вы сгенерируете матрицу X , вы можете поместить ее в MultinomialNB :)

Здесь вы можете получить представление о том, как сгенерировать X * 1018.* (учтите, что это полный учебник по созданию Multinomial Naive Bayes классификатора, так что там много чего вам не нужно, так как вы используете sklearn):

https://towardsdatascience.com/multinomial-naive-bayes-classifier-for-text-analysis-python-8dd6825ece67

...