Как рассчитать точность алгоритма анализа настроений (наивный байесовский алгоритм)

В настоящее время я работаю над программой анализа настроений наивного Байеса, но я не совсем уверен, как определить ее точность. Мой код:

x = df["Text"]
y = df["Mood"]

test_size = 1785
x_train = x[:-test_size]
y_train = y[:-test_size]

x_test = x[-test_size:]
y_test = y[-test_size:]

count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(x_train)
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
clf = MultinomialNB().fit(X_train_tfidf, y_train)

print(clf.predict(count_vect.transform(["Random text"])))

Прогноз отлично работает для предложения, которое я ему даю, однако я хочу запустить его на 20% из моей базы данных (x_test и y_test) и рассчитать точность. Я не совсем уверен, как подойти к этому. Любая помощь будет оценена по достоинству.

Я также пробовал следующее:

predictions = clf.predict(x_test)

print(accuracy_score(y_test, predictions))

Что дает мне следующую ошибку:

ValueError: could not convert string to float: "A sentence from the dataset"
Оптимизация производительности модели: Руководство по настройке гиперпараметров в Python с Keras
Оптимизация производительности модели: Руководство по настройке гиперпараметров в Python с Keras
Настройка гиперпараметров - это процесс выбора наилучшего набора гиперпараметров для модели машинного обучения с целью оптимизации ее...
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Udacity Nanodegree Capstone Project: Классификатор пород собак
Udacity Nanodegree Capstone Project: Классификатор пород собак
Вы можете ознакомиться со скриптами проекта и данными на github .
Определение пород собак с помощью конволюционных нейронных сетей (CNN)
Определение пород собак с помощью конволюционных нейронных сетей (CNN)
В рамках финального проекта Udacity Data Scietist Nanodegree я разработал алгоритм с использованием конволюционных нейронных сетей (CNN) для...
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
0
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

прежде чем использовать прогнозы = clf.predict(x_test), пожалуйста, преобразуйте тестовый набор также в числовой

x_test = count_vect.transform(x_test).toarray()

вы можете найти шаг за шагом, чтобы сделать это [здесь]

Спасибо, преобразование в числовое сработало. Можно ли как-то проверить, правильно ли я сделал прогноз? Я получаю точность около 94%, и я не уверен, что это правильно.

Chiby 23.03.2022 14:19

если вы используете функцию precision_score, чтобы узнать точность, а ожидаемые тестом метки y_test верны, то точность 94% должна быть правильной. Вы можете перекрестно проверить с помощью некоторой выборки и посмотреть, заботитесь ли вы о правильном прогнозе. Пожалуйста, примите ответ также, если это послужит вашему вопросу.

Vineesh Vijayan 23.03.2022 14:39

Понял, большое спасибо за помощь.

Chiby 23.03.2022 15:20

Другие вопросы по теме