Почему мой код не предсказывает и вычисляет только целевое значение - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть этот код, который load_digits и использует модель SVM для прогнозирования цифр. Но после подгонки модели ее прогноз на новые значения неверен и вычисляет целевые значения, которые не соответствуют заданным данным. Ниже приведен код:

import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn import svm

digits = datasets.load_digits()

my_OCR_model = svm.SVC(gamma = 0.001, C = 100)

X, y = digits.data[:-10], digits.target[:-10]

my_OCR_model.fit(X, y)

print(my_OCR_model.predict(X[[-6]]))
print(y[-6])

plt.imshow(digits.images[-6], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show() 

1 Ответ

0 голосов
/ 10 ноября 2019

Удалить нарезку.

import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn import svm

digits = datasets.load_digits()

my_OCR_model = svm.SVC(gamma = 0.001, C = 100)

X, y = digits.data, digits.target # remove slicing here

my_OCR_model.fit(X, y)

print(my_OCR_model.predict(X[[-6]]))
print(y[-6])

plt.imshow(digits.images[-6], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show() 

В качестве альтернативы, если у вас была веская причина для нарезки, сохраните те же данные для X, y и images. Используйте это как последнюю строку:

plt.imshow(digits.images[:-10][-6], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show()
...