Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Васильев Ю. - Python для data science (Библиотека программиста) - 2023.pdf
Скачиваний:
7
Добавлен:
07.04.2024
Размер:
7.21 Mб
Скачать

86      Глава 3. Библиотеки Python для data science

Вот как можно преобразовать отзывы в векторы признаков:

from sklearn.feature_extraction.text import CountVectorizer vectorizer = CountVectorizer()

vectorizer.fit(reviews)

X_train = vectorizer.transform(reviews_train) X_test = vectorizer.transform(reviews_test)

Прежде всего, создаем объект vectorizer. Затем применяем метод векторизатора fit() для построения словаря из лексем (tokens), найденных в датасете reviews, содержащем все отзывы из обучающего и тестового наборов. После этого используем метод transform() объекта vectorizer для преобразования текстовых данных в обучающем и тестовом наборах в числовые векторы признаков.

Обучение и оценка модели

Теперь, когда у нас есть обучающий и тестовый наборы в виде числовых векторов, можно приступать к обучению и тестированию модели. Сначала обучим классификатор scikit-learn LogisticRegression()для прогнозирования тональности отзыва. Логистическая регрессия — это простой, но популярный алгоритм для решения задач классификации.

Во фрагменте кода ниже мы создаем классификатор LogisticRegression(), затем используем его метод fit() для обучения модели на обучающих данных:

from sklearn.linear_model import LogisticRegression classifier = LogisticRegression() classifier.fit(X_train, sentiment_train)

Теперь нужно оценить, насколько точно модель делает прогнозы, на новых данных. Именно поэтому обычно набор маркированных данных разделяют на обучающий и тестовый, как мы сделали это выше. Так можно оценить модель с помощью тестового набора:

accuracy = classifier.score(X_test, sentiment_test) print("Accuracy:", accuracy)

Оценка точности обычно выглядит следующим образом:

Accuracy: 0.81