Классификация OVR не работает с набором данных MNISTPython

Программы на Python
Ответить
Anonymous
 Классификация OVR не работает с набором данных MNIST

Сообщение Anonymous »

Я пишу модель классификации с использованием OVR для набора данных MNIST, а затем прошу пользователей вводить изображения, по которым модель затем прогнозирует класс. Точность самой модели (на обучающих и тестовых данных) составляет около 90%, но она классифицирует каждое загруженное изображение как 7 (даже полностью белые/полностью черные изображения). Раньше он классифицировал их все как 5, но нормализовал значения, и теперь они все достигают 7. Я удостоверился, что мои входные данные имеют ту же форму, что и изображения набора данных MNIST, и попытался изменить разделение обучающих/тестовых данных, чтобы также предотвратить чрезмерное/недостаточное соответствие. Сам код относительно прост: он разбивает набор данных на обучающий/тестовый, нормализует его и подгоняет под модель. Затем он берет изображение, преобразует его в массив пикселей и делает прогноз. Это простой код, и я действительно не понимаю проблемы.
Я проверил, что:
- Размер входных изображений изменяется до 28×28
- Они преобразуются в оттенки серого
- Входная форма, передаваемая в Predict(), равна (1, 784)
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784', as_frame=False)
X, y = mnist.data, mnist.target
X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC

ovr_clf = SVC(random_state=42)
ovr_clf.fit(X_train, y_train)

from google.colab import files

uploaded = files.upload()
from PIL import Image
import numpy as np

filename = next(iter(uploaded))

img = Image.open(filename).convert("L")
img_array = np.array(img)
img_array = img_array.reshape(1, 784)

print(img_array)
ovr_clf.predict(img_array)


Подробнее здесь: https://stackoverflow.com/questions/798 ... st-dataset
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»