www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Нахождение правильных параметров модели

Дата публикации Mar 25, 2019

фотоДжейсон ВонгнаUnsplash

Если вы читали о науке о данных и / или машинном обучении, вы наверняка встречали статьи и проекты, которые работают с набором данных MNIST. Набор данных включает в себя набор из 70000 изображений, каждое из которых представляет собой рукописную цифру от 0 до 9. Я также решил использовать тот же набор данных, чтобы понять, как точная настройка параметров модели машинного обучения может создать разницу.

Эта статья объясняет, как я использовалGridSearchCVчтобы найти наиболее подходящие параметры для этого набора данных и использовать их для повышения точности и улучшения матрицы путаницы. Вы можете найти код в репозитории GitHub ниже:

kb22 / Digit-Recognition-с параметром-Tuning

Проект включает в себя использование GridSearchCV для определения наилучшей комбинации параметров оценки. ...

github.com

Импорт библиотек и наборов данных

Я начинаю с импорта необходимых библиотек. Я использовал данные обучения и тестирования как.csvотВот, Каждая строка в наборе данных состоит из метки и 784 пиксельных значения для представления изображения размером 28x28.

Учебные данные состоят из 60000 изображений, в то время как набор тестовых данных содержит 10000 изображений.

Когда у меня есть данные, я получаю из них функции и ярлыки и сохраняю их вtrain_X,train_y,test_Xа такжеtest_y,

Изучение набора данных

Анализ распределения классов

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

Количество изображений для каждой цифры (0–9)

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

Просмотр тренировочных образов

Давайте также посмотрим, как изображения выглядят в реальности. Я случайным образом выбираю 10 изображений из тренировочных данных и отображаю их, используяplt.imshow(),

10 случайно выбранных изображений из набора данных

То, что мы сразу видим на 10 случайных изображениях, это разница между цифрами любого типа. Посмотрите на все4в приведенных выше 10 изображений. Первый - жирный и прямой, второй - жирный и диагональный, а третий - тонкий и диагональный. Было бы действительно удивительно, если бы модель могла учиться на основе данных и фактически обнаруживать все различные стили для4,

Применение машинного обучения

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

Далее, используя прогноз, я рассчитал матрицу точности и путаницы.

Модель достигла точности 94,4%. Матрица путаницы показывает, что модель смогла правильно предсказать множество изображений. Далее я решил настроить параметры модели, чтобы попытаться улучшить результат.

Настройка параметров

Чтобы определить наилучшую комбинацию значений параметров для модели, я использовалGridSearchCV, Это метод, предоставленныйsklearnбиблиотека, которая позволяет нам определить набор возможных значений, которые мы хотим использовать для данной модели, она обучается на данных и определяет лучший оценщик из комбинации значений параметров.

В данном конкретном случае я решил выбрать диапазон значений для нескольких параметров. Число оценщиков может быть 100 или 200, максимальная глубина может быть 10, 50 или 100, минимальные выборки делятся на 2 или 4, а максимальные характеристики могут основываться наsqrtилиlog2,

GridSearchCVожидает оценку, которая в нашем случае являетсяrandom_forest_classifier, Мы передаем возможные значения параметров какparam_gridи установите перекрестную проверку на 5.verboseа 5 выводит логи на консоль иnjobsкак -1 заставляет модель использовать все ядра на машине. Затем я подгоняю эту сетку и использую ее, чтобы найти лучшую оценку.

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

Взглянув на точность выше, мы видим, что точность улучшилась до97,08%от94,42%просто изменив параметры модели. Матрица путаницы также показывает, что больше изображений были классифицированы правильно.

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

Определение правильных параметров является одним из важных шагов при принятии решения о том, какой алгоритм использовать, и максимально эффективного использования его на основе данных.

Вывод

В этой статье я рассмотрел проект, в котором улучшил точность классификатора случайного леса, просто выбрав наилучшую комбинацию значений параметров, используяGridSearchCV, Я использовал набор данных MNIST и улучшил точность с 94,42% до 97,08%.


Читать больше статей:

Давайте создадим Статью Рекомендатора, используя LDA

Рекомендовать статьи на основе поискового запроса

towardsdatascience ком

Работа с API с использованием Flask, Flask RESTPlus и Swagger UI

Введение в Flask и Flask-RESTPlus

towardsdatascience.com

Прогнозирование наличия болезней сердца с помощью машинного обучения

Применение машинного обучения в здравоохранении

towardsdatascience.com

Matplotlib - сделать визуализацию данных интересной

Использование Matplotlib для создания красивых визуализаций плотности населения по всему миру.

towardsdatascience.com


Пожалуйста, не стесняйтесь делиться своими идеями и мыслями. Вы также можете связаться со мной поLinkedIn,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map