Введение

Модели машинного обучения:

Как правило, модели машинного обучения работают в последовательности, в которой мы предоставляем входные данные, классификатор модели соответствует данным и выдает результат. Входные данные взяты из единственной выборки. Данные обычно состоят из независимых переменных (X) и зависимой переменной (Y). Прогнозы модели представлены как (ŷ).

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

Так как же помогает объединение результатов нескольких классификаторов моделей? А зачем нам ансамблевая модель?

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

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

Начальная загрузка

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

Агрегирование начальной загрузки (упаковка)

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

Математически алгоритм упаковки можно записать как:

Где I - функция идентичности, которая равна 1, если истинно, и 0, если ложно. Вектор x - это входной вектор, а y - предсказанное значение из i-го классификатора.

Так как же упаковка в мешки снижает дисперсию? Интуитивно мы можем понять это таким образом, предположим, что если у нас есть n случайных величин X1, X2..Xn, которые являются независимыми и одинаково распределенными и подчиняются нормальному распределению N (μ, σ²), то

следует N (μ, σ² / n). Здесь мы можем видеть из центральной предельной теоремы, что происходит сокращение дисперсии, когда происходит агрегирование. Таким образом, теоретически упаковка в мешки повышает точность. Бэггинг также затрудняет интерпретацию, поскольку он соответствует ряду классификаторов на разных выборках начальной загрузки и дает агрегированный результат. Давайте теперь обсудим другую ансамблевую модель, называемую бустингом.

Повышение

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

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

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

Алгоритм повышения исправляет эти недостатки. Давайте теперь разберемся, как работает алгоритм повышения. Допустим, у нас есть набор данных с 6 наблюдениями. В первом раунде алгоритма повышения мы берем вероятностную выборку, в отличие от алгоритма бэггинга, который берет образцы начальной загрузки. Допустим, мы подобрали 2 классификатора к этим данным C1 и C2, которые дают прогнозируемые значения. В начале повышения всем наблюдениям присваиваются одинаковые веса. Классификатор C1 в этом случае правильно предсказал значения X3, X4 и X5. Классификатор C2 правильно предсказал X2, X3, X4, X5, X6 (см. Таблицу). Таким образом, C2 оказывается лучшим классификатором, поскольку он правильно классифицирует большинство наблюдений. Кроме того, наблюдение X1 является наиболее проблематичным наблюдением, поскольку ни один из классификаторов не может правильно его классифицировать. Классификатор C3 правильно его классифицирует. В следующем раунде повышения веса неправильно классифицированных наблюдений увеличиваются, а веса правильно классифицированных наблюдений уменьшаются. Скажем, веса классификатора C1, C2, C3 равны α1, α2, α3. Окончательный прогноз в алгоритме повышения - это знак взвешенной суммы прогнозов. Некоторые из ключевых моментов алгоритма повышения:

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

2. Он также будет рассматривать C3 как важный, поскольку он может правильно классифицировать наиболее проблемное наблюдение (X1).

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

4. Классификаторы считаются важными, а не важными в зависимости от того, насколько точно они классифицируют наблюдения.

Итак, всегда ли ансамблевые модели повышают точность?

Как мы видели выше, основная цель ансамблевых моделей - уменьшить дисперсию модели и повысить точность прогнозов. Итак, как вы думаете, ансамблевые модели всегда повышают точность наших прогнозов? Давайте рассмотрим это, реализовав алгоритмы упаковки и повышения для разных наборов данных и проверив, верно это или нет. Мы будем использовать Python для реализации этих алгоритмов. Во-первых, мы увидим данные об убытке IBM, которые содержат 1470 наблюдений и 35 переменных. Мы выберем истечение в качестве целевой переменной, поскольку это бинарная переменная, которая имеет значение «да» для сотрудника, у которого есть случай увольнения, и «нет» для сотрудника, который не является выбывшим. Некоторые из переменных x - это образование, ежемесячный доход, общее количество лет работы и т. Д. Мы импортировали все необходимые библиотеки в python, прочитали данные, разделили переменные x и y и разделили данные на обучающие и тестовые данные с помощью библиотеки sklearn в питон. Теперь мы поместим единый классификатор дерева решений на данные поезда и сделаем прогнозы на основе тестовых данных. Сгенерируйте матрицу путаницы с помощью пакета sklearn и вычислите точность прогнозов. Точность модели дерева решений составила 84,80 процента.

Теперь мы будем использовать алгоритм упаковки в том же наборе данных, используя пакет sklearn в python. Гиперпараметр n_estimators - это количество деревьев, которые алгоритм упаковки будет использовать в ансамблевой модели. Теперь мы используем это для прогнозирования наших результатов. Здесь мы видим, что точность модели с мешками немного ниже, чем у модели дерева решений (83,90%).

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

Теперь давайте реализуем эти алгоритмы на меньшем наборе данных. Набор данных ириса состоит из 150 наблюдений и 6 переменных, а именно: длина чашелистиков, ширина чашелистиков, длина лепестков, ширина лепестков и вид цветка, который состоит из 3 значений. Сначала мы импортируем все необходимые библиотеки в python, читаем данные и разделяем данные на обучающие и тестовые. Мы можем видеть снимок данных на изображении. Мы разделили переменные x и y и использовали стратифицированную случайную выборку для переменной y, так что у нас есть пропорциональные значения переменной y в наших обучающих и тестовых данных. Теперь мы подгоняем модель дерева решений к обучающим данным с помощью пакета Sklearn в python, прогнозируем значения в тестовых данных и генерируем нашу матрицу неточностей для расчета точности нашей модели. Классификатор дерева решений смог правильно классифицировать 42 наблюдения из 45 наблюдений с точностью 93,33%.

Теперь давайте воспользуемся алгоритмом упаковки для тех же данных, сделаем прогнозы на основе тестовых данных и рассчитаем точность модели. Удивительно, но точность модели с мешками такая же, как у нашей модели дерева решений!

Теперь давайте воспользуемся нашим алгоритмом повышения и посмотрим, что произойдет. Мы видим, что здесь точность модели упала с огромным запасом. Точность модели Ada Boost здесь составляет всего 84,4 процента, тогда как точность модели дерева решений и упаковки составляет 93,33 процента. Модель ada boost правильно классифицировала только 8 наблюдений третьего класса, в то время как модель дерева решений и модель мешков смогли правильно классифицировать 12 наблюдений третьего класса.

Итак, мы начали этот раздел с вопроса, всегда ли ансамблевая модель повышает точность? Ответ, как мы видели из приведенных выше примеров, - нет!

Заключение

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