Тело: >
Я создаю инструмент обнаружения SMS-спама и столкнулся с ошибкой при прогнозировании с помощью модели GaussianNB. Вот сообщение об ошибке:
Код: Выделить всё
UserWarning: X has feature names, but GaussianNB was fitted without feature names
warnings.warn(
---------------------------------------------------------------------------
ValueError: could not convert string to float: 'Dear i am not denying your words please'
Код: Выделить всё
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, confusion_matrix, precision_score
# Training the model
gnb = GaussianNB()
gnb.fit(df_train, y_train)
# Making predictions
y_pred1 = gnb.predict(df_test) # Error occurs here
# Evaluating the model
print(accuracy_score(y_test, y_pred1))
print(confusion_matrix(y_test, y_pred1))
print(precision_score(y_test, y_pred1))
< /code>
Я подозреваю, что проблема связана с форматом входных данных. df_train
Я подозреваю, что проблема связана с форматом входных данных. df_train и df_test содержит столбец с SMS -текстом, но Gaussiannb требует числового ввода.
Вопросы:
[*] Как я могу предварительно обрабатывать текстовые данные, чтобы Gaussiannb мог справиться с ним? < /p>
< /li>
Как обратиться к предупреждению о именах функций (
Код: Выделить всё
X has feature names, but GaussianNB was fitted without feature names
- Преобразование текстовых данных в числовые с использованием tfidfvectorizer < /code>. Тем не менее, я не уверен, реализовал ли я это правильно. ) .
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-y-train