Шаг 78.
Введение в машинное обучение с использованием Python. ... . Оценки неопределенности для классификаторов. Выводы и перспективы

    На этом шаге мы подведем некоторый итог изученному материалу.

    Мы начали эту часть нашего изложения с обсуждения такого понятия, как сложность модели, а затем рассказали об обобщающей способности (generalization), то есть о построении такой модели, которая может хорошо работать на новых, ранее неизвестных данных. Это привело нас к понятиям "недообучение", когда модель не может описать изменчивость обучающих данных, и "переобучение", когда модель слишком много внимания уделяет обучающим данным и не способна хорошо обобщить новые данные.

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

    Здест мы привели много информации об алгоритмах, но вам необязательно помнить все эти детали, чтобы понимать содержание следующих шагов. Тем не менее некоторая информация о моделях, упомянутых в предыдущих шагах, и контексте использования этих моделей, имеет важное значение для успешного применения машинного обучения на практике. Ниже дается краткий обзор случаев использования той или иной модели:

Ближайшие соседи
Подходит для небольших наборов данных, хорош в качестве базовой модели, прост в объяснении.

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

Наивный байесовский классификатор
Подходит только для классификации. Работает даже быстрее, чем линейные модели, хорош для очень больших наборов данных и высокоразмерных данных. Часто менее точен, чем линейные модели.

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

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

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

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

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

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

    Теперь у вас уже есть некоторое представление о том, как применять, настраивать и анализировать модели, которые мы здесь рассмотрели. В этих шагах мы сосредоточились на бинарном классификации, поскольку ее, как правило, легче всего интерпретировать. Большинство представленных алгоритмов могут решать задачи регрессии и классификации вариантов, при этом все алгоритмы классификации поддерживают как бинарную, так и мультиклассовую классификацию. Попробуйте применить любой из этих алгоритмов к наборам данных, включенным в scikit-learn, например, к наборам для регрессии boston_housing или diabetes, или к набору digits для мультиклассовой классификации. Экспериментирование с алгоритмами на различных наборах данных позволит вам лучше понять, насколько быстро обучаются различные алгоритмы, насколько легко анализировать построенные с их помощью модели и насколько эти алгоритмы чувствительны к типу данных.

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

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

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




Предыдущий шаг Содержание Следующий шаг