1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-ml-for-humans-zh

Клонировать/Скачать
2.3.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 20:23 b6c6134

2.3. Обучение с учителем III

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

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

K-ближайших соседей (KNN)

Идея метода заключается в том, чтобы предсказать значение целевой переменной для нового объекта на основе значений этой переменной у K ближайших объектов из обучающей выборки. Для этого необходимо определить меру близости между объектами. Наиболее распространённой мерой является евклидово расстояние.

Пусть дана выборка объектов X = {x1, x2, ..., xn}, каждый из которых характеризуется m признаками. Тогда для каждого объекта xi можно найти K его ближайших соседей среди объектов выборки X. Значение целевой переменной y для нового объекта x будет определяться как среднее или наиболее частое значение y среди K ближайших соседей.

Выбор значения K является важным шагом в алгоритме KNN. Если K слишком мало, модель может быть подвержена влиянию выбросов. Если же K слишком велико, модель может стать менее точной. Оптимальное значение K обычно определяется путём перебора различных значений и оценки точности модели на тестовой выборке.

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

Пример использования KNN для прогнозирования цен на недвижимость

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

Алгоритм KNN будет работать следующим образом:

  1. Сохраним обучающую выборку. X будет содержать признаки недвижимости, такие как местоположение, количество комнат и т. д. Y будет содержать соответствующие цены.
  2. Отсортируем обучающую выборку по сходству с новым объектом. Сходство будет определяться на основе признаков X.
  3. Вычислим K ближайших соседей нового объекта. Это будут объекты из обучающей выборки, которые наиболее похожи на новый объект по признакам X.
  4. Предскажем цену нового объекта как среднее значение цен K ближайших соседей.

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

Выбор K

Для определения оптимального значения K можно использовать метод перекрёстной проверки. Этот метод предполагает разделение обучающей выборки на две части: обучающую и тестовую. Модель обучается на обучающей выборке, а затем её точность оценивается на тестовой выборке. Процесс повторяется несколько раз, при этом каждый раз обучающая и тестовая выборки меняются местами. В результате выбирается модель с наилучшей точностью на тестовых данных.

Применение KNN

KNN находит применение в различных областях, таких как:

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

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

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

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

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

Случайный лес: объединение деревьев решений

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

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

  • количество признаков, разделяемых на каждом узле, ограничено определенным процентом от общего числа (это настраиваемый гиперпараметр, см. документацию scikit-learn); это гарантирует, что унаследованные модели не будут чрезмерно полагаться на отдельные признаки и справедливо использовать все потенциальные прогностические признаки.
  • каждое дерево извлекает случайную выборку из исходного набора данных для создания своего разделения, добавляя дополнительный элемент случайности, чтобы предотвратить переобучение.

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

Чтобы продемонстрировать это, рассмотрим следующие девять классификаторов дерева решений:

...

Эти классификаторы дерева решений могут быть объединены в случайный лес, который объединяет эти входные данные. Оси x и y можно рассматривать как признаки x1 и x2. Для каждого конкретного значения признака деревья решений выводят «синюю», «зеленую» и «красную» классификацию.

...

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

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

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

Далее мы завершаем изучение контролируемого обучения.

Очень хорошо. В этом разделе мы рассмотрели:

  • два непараметрических алгоритма контролируемого обучения: KNN и деревья решений;
  • метрики расстояния и прироста информации;
  • случайный лес как пример ансамблевых моделей;
  • перекрестную проверку и настройку гиперпараметров.

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

В третьей части «Неконтролируемое обучение» мы обсудим, как решать проблемы, когда у нас есть немаркированный обучающий набор.

Материалы для упражнений и дополнительное чтение

2.3a Реализовать KNN

Попробуйте это руководство, чтобы реализовать KNN с нуля на Python. Вы также можете просмотреть документацию scikit-learn, чтобы увидеть, как работает предварительно созданная реализация.

2.3b Деревья решений

Попробуйте эксперимент с деревьями решений в главе 8 учебника «Введение в статистическое обучение». Вы можете использовать набор данных Титаника для игры и посмотреть это руководство, которое охватывает те же концепции и код. Вот реализация случайного леса scikit-learn, которую можно использовать сразу на наборе данных.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-ml-for-humans-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-ml-for-humans-zh.git
oschina-mirror
wizardforcel-ml-for-humans-zh
wizardforcel-ml-for-humans-zh
master