Этот пост посвящен моему опыту использования python для распознавания цифр.

Прежде чем я углублюсь в детали, есть некоторые вещи, которые вы должны понять.

scikit-learn ›› В чем заключается все волшебство, хотя технически оно предоставляет все самое интересное.

SciPy ›› Эта библиотека как Ватсон для Шерлока Холмса. Это делает вычисления и обрабатывает данные.

Теперь давайте перейдем к коду

from sklearn import datasets
from sklearn.svm import SVC
from scipy import misc


digits = datasets.load_digits()
features = digits.data
labels = digits.target

clf = SVC(gamma = 0.001)
clf.fit(features, labels)


img = misc.imread('/Users/sree/Desktop/image.jpeg')
img = misc.imresize(img, (8,8))
img = img.astype(digits.images.dtype)
img = misc.bytescale(img, high=16, low=0)

x_test = []

for eachRow in img:
   for eachPixel in eachRow:
      x_test.append(sum(eachPixel)/3)



print(clf.predict([x_test]))

Шаг 1: установите sklearn и scipy

Прежде чем углубляться в детали, я надеюсь, что вы немного знаете о машинном обучении. По сути, машине требуются некоторые данные для обучения.

digits = datasets.load_digits()
features = digits.data
labels = digits.target

В приведенном выше коде происходит то же самое, он загружает данные из /\ /\ . Здесь, как только данные получены, данные и метки разделяются. Здесь digits.data будут всеми данными, а digits.target будет иметь все метки.

Данные здесь представлены нулями и единицами. Это сохраняется в функциях, и это массив. Теперь допустим, что соответствующие значения сохраняются в массиве меток.

Теперь давайте обучим данные.

clf = SVC(gamma = 0.001)
clf.fit(features, labels)

В основном здесь данные используются для обучения машины, чтобы она распознавала ввод и пыталась распознавать новые входные изображения.

img = misc.imread('/Users/sree/Desktop/7.jpeg')
img = misc.imresize(img, (8,8))
img = img.astype(digits.images.dtype)
img = misc.bytescale(img, high=16, low=0)

Здесь изображение преобразуется в единицы и нули.

Как только это будет сделано, вы должны изменить размер изображения и преобразовать тип изображения в соответствии с типом данных, с которыми оно было обучено.

как только это будет сделано, вы должны нормализовать значения изображения от 0 до 16.

Теперь для части предсказания. Валя!!!

x_test = []

for eachRow in img:
   for eachPixel in eachRow:
      x_test.append(sum(eachPixel)/3)



print(clf.predict([x_test]))

Здесь отображаются прогнозируемые значения.

Эта статья о распознавании цифр — лишь малая часть больших статей, которые еще впереди. Есть много областей, которые нужно охватить.

Как например:

  1. Как обобщить алгоритм
  2. Как изменится скорость обучения при различном наборе параметров
  3. Как устранить переобучение
  4. Что такое другие алгоритмы машинного обучения и как их можно использовать для решения той же задачи
  5. Как другое машинное обучение будет работать и масштабироваться в зависимости от разных наборов данных

Наряду с этими вопросами, в следующих статьях будут даны ответы на множество других вопросов.