body:
Я строю инструмент обнаружения SMS -спама и сталкиваюсь с ошибкой при прогнозировании с помощью модели Gaussiannb. Вот сообщение об ошибке: < /p>
Код: Выделить всё
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 требует числового ввода.
Вопросы: [/b]
- Как я могу предварительно обрабатывать текстовые данные, чтобы Gaussiannb мог справиться с ним? < /p>
< /li>
Как обратиться к предупреждению о именах функций ()?Код: Выделить всё
X has feature names, but GaussianNB was fitted without feature names
- Преобразование текстовых данных в числовые с помощью TfidfVectorizer. Однако я не уверен, правильно ли я это реализовал.
- Обеспечение отсутствия пропущенных значений в наборе данных с помощью .isnull().sum( ).
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-y-train