Распознавание рукописных цифр (0–9) в задаче MNIST.
Входные данные: изображение (28×28 пикселей).
Выход: один из 10 классов (0, 1, 2, ..., 9).
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Загружаем данные
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)
# Обучаем модель
model = LogisticRegression(max_iter=5000, multi_class='multinomial', solver='lbfgs')
model.fit(X_train, y_train)
# Делаем предсказание
y_pred = model.predict(X_test)
print(f'Accuracy: {accuracy_score(y_test, y_pred)}')
Пример для мультилейбловой (multilabel) задачи
В мультилейбловой классификации у одного объекта может быть несколько меток одновременно.
Классификация жанров фильмов на основе описания. Один фильм может относиться сразу к нескольким жанрам:
Фильм: "Матрица"
Жанры: [боевик, научная фантастика, триллер]
Используем
MultiLabelBinarizer и OneVsRestClassifier:from sklearn.datasets import make_multilabel_classification
from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier
from sklearn.preprocessing import MultiLabelBinarizer
# Генерируем синтетические мультилейбловые данные
X, y = make_multilabel_classification(n_samples=1000, n_classes=5, n_labels=2, random_state=42)
# Разделяем данные
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучаем мультилейбловую модель
model = OneVsRestClassifier(LogisticRegression(max_iter=5000))
model.fit(X_train, y_train)
# Делаем предсказание
y_pred = model.predict(X_test)
# Выводим пример предсказания
print(f'Пример реальных меток: {y_test[0]}')
print(f'Пример предсказанных меток: {y_pred[0]}')
Ставь 👍 и забирай 📚 Базу знаний