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

Что такое классификация?

В статистике классификация — это проблема определения того, к какой из категорий относится наблюдение. Примерами являются отнесение определенного электронного письма к классу «спам» или «не спам» и назначение диагноза данному пациенту на основе наблюдаемых характеристик пациента.

я включу несколько алгоритмов классификации, чтобы мы могли измерить эффективность всех алгоритмов

такие как логистическая регрессия, случайный лес, деревья решений, Adaboost, повышение градиента и многое другое…

Так…. Сделаем пока не поздно..😉😉

Что такое набор данных MNIST?

MNIST — это набор данных из 70 000 изображений цифр, написанных от руки старшеклассниками и сотрудниками Бюро переписи населения США. Все изображения помечены соответствующей цифрой, которую они представляют. MNIST — это привет, мир машинного обучения.

Существует 70 000 изображений, и каждое изображение содержит 784 (8*8) признаков. Каждое изображение имеет размер 8*8 пикселей, и каждая функция просто представляет интенсивность одного пикселя от 0 (белый) до 255 (черный).

Импорт библиотек и наборов данных, необходимых для этой классификации

Мы импортировали различные алгоритмы для классификации, такие как Logistic, Decision, Support Vector Machine, Gradient Boosting, AdaBoosting и последний, но не менее важный классификатор Random Forest. мы будем экспериментировать со всеми этими моделями или алгоритмами и выберем из них лучшее, чтобы повысить точность

Теперь, когда данные импортированы и просматривая эти данные, вы узнаете, что они представляют собой одномерный массив размером 64, и каждое значение в этом массиве представляет значения пикселей для изображений, и они будут находиться в диапазоне от 0 до 255.

Давайте проверим данные

сначала нам нужно преобразовать их в массив 8 * 8 2 Dim из массива 1Dim размером 64. и поскольку это оттенки серого, нет необходимости добавлять дополнительные каналы.

вот я нарисовал 12 из них, используя matplotlib для визуализации

здесь мы можем видеть, как это выглядит, мы получили здесь изображение [0,1,2,3] с соответствующими целевыми значениями для него, и оно печатается как заголовок каждого изображения.

и целевые значения или метки находятся в диапазоне от 0 до 9 и всего 10 целей

Как-то один мудрый человек сказал... прежде чем вводить необработанные данные в какой-либо классификатор, всегда лучше выполнить некоторую нормализацию или предварительную обработку. потому что распределение каждого образца варьируется. И библиотека Sklearn упростила нам это, всего одна или две строки кода.

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

Прежде чем мы определим нашу модель, нужно убедиться, что мы разделили наши данные на две части. 1) набор поездов и 2) набор тестов для перекрестной проверки и снова sklearn для спасения

данные разделены на две части: набор поездов и тестовый набор, мы будем обучать нашу модель на наборе поездов, а точность будет измеряться на тестовом наборе.

Фактическое время для машинного обучения

Мы определили другую модель для классификации, как вы можете видеть ниже.

теперь фактическое время подгонки модели.

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

Машина опорных векторов имеет точность 0,9777, что очень хорошо

Давайте рассчитаем метрики путаницы, чтобы получить представление о нашей модели, что она делает.

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

Заключение

Метод опорных векторов является лучшей моделью среди всех других моделей, включая методы ансамблей.

вот ссылка на гитхаб 😉😉😉 не стесняйтесь копипастить, но убедитесь, что вы чему-то научились из этого

Я благодарен наставникам из suvenconsultants за то, что они предоставили потрясающие формулировки задач и дали многим из нас возможность пройти стажировку по программированию. Спасибо Suvenconsultants