Распознавание рукописного текста — это проблема, которая восходит к первым автоматическим машинам, которым нужно было распознавать отдельные символы в рукописных документах. Классификация рукописного текста или чисел важна для многих реальных сценариев. Например, почтовая служба может сканировать почтовые индексы на конвертах, чтобы автоматизировать группировку конвертов, которые должны быть отправлены в одно и то же место.
В этой статье мы будем использовать набор данных Digit из Scikit-Learn.
Scikit-Learn – это библиотека для Python, содержащая множество полезных алгоритмов, которые можно легко реализовать и изменить для классификации и других задач машинного обучения.
Вы можете обратиться к документация по Scikit-Learnпо указанной ссылке:
https://scikit-learn.org/stable/
В этом случае полезно использовать средство оценки sklearn.svm.SVC, в котором используется метод Классификация опорных векторов (SVC).
Для этой задачи можно использовать Jupyter Notebook или Google Colab.
Реализация
- Импорт основных библиотек Python:
Библиотеки Python, которые мы будем использовать: Pandas, Numpy, sklearn, Matplotlib
Импортируются следующим образом:
2.Загрузка наборов данных и определение их формы:
3.Получение изображения данных в градациях серого с использованием библиотеки matplotlib:
Здесь я буду отображать только 6 изображений. Но вы можете отображать столько, сколько хотите
Вывод приведенного выше кода будет:
4.Теперь мы можем обучить оценщик svc, который мы определили ранее.
5.Теперь мы должны протестировать наш оценщик, заставив его интерпретировать шесть цифр проверочного набора.
Мы собираемся прогнозировать наши данные для 5 данных
Для проверки мы можем сравнить те же данные с digits.target[1791:1796]
Как мы видим, значение pred и digits.target[1791:1796] одинаково. Поэтому мы можем сказать, что наша модель имеет 100% точность.
Давайте проверим еще несколько наборов данных:
1.
2.
3.
Если вы хотите проверить точность нашей модели с помощью SVC, вы можете выполнить следующие шаги:
- Разделить данные на данные для обучения и тестирования с помощью train_test_split()
2. Подгонка данных под модель SVC
3.Выполнение прогнозирования данных на тестовых данных:
4. Теперь, чтобы проверить точность:
Как мы видим здесь, точность нашей модели составляет 99,33%, что, на мой взгляд, неплохо.
Спасибо, что читаете этот блог!!