Что такое классификатор повышения градиента? Что он делает и как выполняет классификацию? Можем ли мы с его помощью построить хорошую модель и делать ценные прогнозы?

Что такое классификатор повышения градиента?

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

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

Классификация - это процесс, в котором алгоритму машинного обучения передаются некоторые данные и они распределяются по дискретным классам. Эти классы уникальны для каждых данных и соответственно разделены на категории. Например, в нашем почтовом ящике есть такие категории, как «входящие» и «спам», а полученное письмо классифицируется в соответствии с контекстными особенностями письма.

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

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

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

Шаг первый - сбор и анализ наших данных

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

Шаг второй - Расчет шансов и вероятности

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

Чтобы рассчитать общий журнал (шансы), давайте различим пациентов, которые ответили «да» на болезнь сердца, и тех, кто ответил «нет ». Здесь у нас есть 4 пациента в наборе обучающих данных, которые ответили положительно, и 2 пациента, которые ответили отрицательно. Итак, журнал (шансы) того, что пациенты страдают сердечными заболеваниями, равен

Это число будет присутствовать в начальном листе нашего дерева в качестве первоначального прогноза.

Но как мы можем использовать первоначальный прогноз для классификации? Самый простой и разумный способ сделать это - преобразовать логарифм (шансы) в вероятность. Уловка здесь заключается в использовании логистической функции.

И наша вероятность будет выглядеть так:

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

Число 0,5 считается порогом вероятности при построении на его основе дерева решений по классификации, поэтому каждое число выше него автоматически делает пациента склонным к сердечным заболеваниям. Для получения дополнительной информации щелкните ссылку, чтобы посмотреть кривые машинного обучения ROC и AUC.

Шаг третий - расчет остатка

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

Здесь остаточный = (бинарный порок сердца - вероятность) или остаточный = (ответ да / нет - 0,67). Мы помещаем полученные результаты в новый столбец нашей таблицы.

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

Шаг четвертый - построение дерева решений

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

1. Боль в груди (двоичный набор данных)

Если в отношении боли в груди ответ «да», то нам нужно будет найти Остаточную сумму квадратов (RSS) и среднее значение этого положительного ответа.

Чтобы найти среднее значение ответа «да», мы должны взять всех пациентов, которые ответили положительно, сложить эти числа и умножить на количество ответов, которое составляет 3 . Например,

Остаточная сумма квадратов или RSS - это сумма квадратов остатков, которая указывает ошибки, предсказанные на основе фактических значений набора данных. Небольшой RSS показывает, что модель идеально подходит для данных. Здесь среднее1 и RSS1 - это полученные результаты, которые соответствуют условию нашей модели обучения, а среднее2 и RSS2 - это те, которых нет.

Приведенная выше формула показывает Уi как элемент остаточного столбца. И Ӯ как среднее число.

Поскольку также есть ответ «нет», мы должны принять это во внимание и произвести те же вычисления в отношении пациентов, которые ответили отрицательно: сложить числа и умножить на 3 .

На основе среднего значения и расчетов RSS мы получим следующие листья дерева:

Здесь у нас есть два листа с остатками, но если мы хотим подсчитать ошибку данных, нам нужно добавить RSS1 и RSS2, и результат будет следующим:

2. Вес (категориальный набор данных)

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

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

3. Пульс (набор числовых данных)

Чтобы понять различия и ошибки данных в пульсе, нам потребуется несколько показателей пульса пациентов. Например, 68, 70, 75, 88, 95 и 115 ударов в минуту. Пульс - это числовое значение, состояние которого может меняться. Итак, мы берем наши значения пульса и классифицируем их по порядку роста. Затем нам понадобится график для визуализации переменных и полученных остатков.

Берем первые два значения пульса и вычисляем их средний результат. Например. (68 + 70) / 2 = 69. Затем мы показываем этот результат красной линией на графике.

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

Так как средний результат равен 0,33, нам нужно отобразить его на нашем графике. Например.

Далее наш расчет переходит к среднему значению в правой части графика. И это будет:

Этот результат мы тоже показываем на графике.

Итак, последний шаг - расчет остатков. Это можно сделать с помощью следующих формул.

Нам нужно произвести такой же расчет со всеми соседними значениями импульса. При этом получаем следующие результаты:

Давайте также вычислим те же значения среднее1 / среднее2, RSS1 / RSS2 и общее значение RSS, как в приведенных выше примерах.

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

При построении дерева с остатками наименьший RSS был, когда мы получили значение Weight = Under normal. Итак, мы принимаем это значение за корень дерева.

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

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

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

Шаг 5 - Расчет выходного значения

Чтобы вычислить выходное значение, нам нужно будет использовать следующую формулу:

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

Введя уже полученные значения в формулу, мы получим новое дерево с выходным значением.

Шаг шестой - Расчет вероятности на основе новых значений

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

Этот расчет аналогичен тому, что мы делали ранее в начале статьи. Однако результат, который мы получаем, совершенно новый. И снова, после определения новой вероятности, давайте найдем новые остаточные числа.

Имея новые данные об остатках, становится возможным построить новое дерево.

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

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

Давайте введем в формулу нашу скорость обучения, равную 0,8, и log (шансы), которая равна 0,69. Таким образом мы получим следующее:

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

Давайте посчитаем наш логарифм (шансы), который мы прогнозируем, по следующей формуле:

В результате получится:

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

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

Подведение итогов

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

Автор: Назар Квартальный, операционный директор Inoxoft

Соавтор: Олеся Славчаник, инженер-программист компании Inoxoft

Первоначально опубликовано на inoxoft.com 2 февраля 2021 г.