В предыдущем рассказе мы узнали о дереве решений. Нам известно несколько преимуществ использования дерева решений. Он быстро обучается и предсказывает, чего нет в SVM или kNN. Его также легко понять и интерпретировать. Но что, если дерево решений не работает? Мы могли бы вывести дерево решений на другой уровень, изучив несколько деревьев одновременно. Итак, идея улучшить дерево решений состоит в том, чтобы обучить несколько деревьев с разными данными обучения. Итак, каждое дерево будет немного отличаться друг от друга. Как? Применяя Bootstrap Aggregating.

Бутстрап

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

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

Довольно простой пример. Допустим, у нас есть

Обучающая выборка: 1, 2, 3

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

Первый пример начальной загрузки: 1, 1, 2

Второй пример начальной загрузки: 2, 3, 3

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

Некоторые из вас могут задаться вопросом, можем ли мы выполнять перекрестную проверку или нет. Что ж, проблема бутстрапа в том, что мы не можем выполнить перекрестную проверку из-за большого количества совпадений в наборах данных начальной загрузки. В качестве основной информации, вероятность выбора n из N розыгрышей составляет примерно 0,632.

Агрегирование бутстрапа

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

С другим деревом решений мы также можем получить разные границы классов. На картинке ниже показан пример результатов упаковки.

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

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

Случайный лес

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

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

Ошибка вне сумки

Это метод измерения ошибки для случайного леса. Из всех исходных точек данных за исключением 1/3 точек данных, которые нельзя использовать при построении деревьев. При построении деревьев мы также тестируем деревья, используя 1/3 точек данных, которые не используются для обучения модели. Это очень похоже на перекрестную проверку. Однако это измеряется во время тренировки.

Заворачивать

Сегодня мы обсудили дополнительные улучшения обычного дерева решений, которое называется Bagging. Мы также выводим его на другой уровень со случайным лесом. Если у вас есть больше знаний по этой теме, чем я еще не говорил, дайте мне знать в ответе ниже, или вы также можете дать мне предложения для моей будущей работы. Удачного обучения!