Введение

Вы когда-нибудь пытались улучшить свой рейтинг в хакатоне по машинному обучению на DataHack или Kaggle? Вы испробовали все свои любимые лайфхаки и приемы, но ваш результат не меняется. Я был там, и это довольно разочаровывающий опыт!

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

А затем приходит Bootstrap Sampling. Это мощная концепция, которая продвинула меня в высшие эшелоны этих списков лидеров хакатона. И это был настоящий познавательный опыт!

Выборка Bootstrap — это метод, который, по моему мнению, должен изучить каждый специалист по данным, начинающий или опытный.

Итак, в этой статье мы узнаем все, что вам нужно знать о выборке начальной загрузки. Что это такое, зачем оно нужно, как оно работает и какое место оно занимает в картине машинного обучения. Мы также реализуем загрузочную выборку в Python.

Что такое бутстрап-сэмплинг?

Вот формальное определение Bootstrap Sampling:

В статистике Bootstrap Sampling — это метод, который включает многократное взятие выборочных данных с заменой из источника данных для оценки параметра совокупности.

Подождите — это слишком сложно. Давайте разберем его и разберемся с ключевыми терминами:

  • Выборка. Что касается статистики, выборка – это процесс выбора подмножества элементов из обширного набора элементов (совокупности) для оценки определенной характеристики всей совокупности.
  • Выборка с заменой. Это означает, что точка данных в выбранной выборке может появиться и в будущих выборках.
  • Оценка параметров. Это метод оценки параметров генеральной совокупности с использованием выборок. Параметр — это измеримая характеристика, связанная с совокупностью. Например, средний рост жителей города, количество эритроцитов и т.д.

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

Зачем нам нужна выборка Bootstrap?

Это фундаментальный вопрос, с которым, как я видел, сталкиваются энтузиасты машинного обучения. В чем смысл выборки Bootstrap? Где вы можете его использовать? Позвольте мне привести пример, чтобы объяснить это.

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

Один из подходов состоит в том, чтобы измерить рост всех учеников, а затем вычислить средний рост. Я проиллюстрировал этот процесс ниже:

Однако это будет утомительной задачей. Только подумайте об этом, нам пришлось бы индивидуально измерить рост 1000 студентов, а затем вычислить средний рост. Это займет дни! Здесь нужен более разумный подход.

Здесь в игру вступает Bootstrap Sampling.

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

Довольно просто, правда? Это основная идея выборки Bootstrap.

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

Выборка Bootstrap в машинном обучении

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

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

Вы можете прочитать и узнать больше об ансамблевом обучении здесь:

Реализовать выборку Bootstrap в Python

Пришло время проверить наши знания и реализовать концепцию Bootstrap Sampling в Python.

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

Затем мы создадим гауссово распределение (население) из 10 000 элементов со средним значением населения, равным 500:

Вывод: 500,00889503613934

Теперь мы возьмем 40 выборок размера 5 из распределения (населения) и вычислим среднее значение для каждой выборки:

Давайте проверим среднее значение средних значений всех 40 образцов:

np.mean(sample_mean)

Вывод: 500.024133172629

Оказывается, это довольно близко к среднему населению! Вот почему Bootstrap Sampling — такой полезный метод в статистике и машинном обучении.

Подведение итогов того, что мы узнали

В этой статье мы узнали о полезности Bootstrap Sampling в статистике и машинном обучении. Мы также реализовали его на Python и проверили его эффективность.

Вот несколько ключевых преимуществ начальной загрузки:

  • Расчетный параметр по бутстрап-выборке сопоставим с фактическим параметром генеральной совокупности.
  • Поскольку нам нужно всего несколько образцов для начальной загрузки, требования к вычислениям намного меньше.
  • В Random Forest размер выборки начальной загрузки даже 20% дает довольно хорошую производительность, как показано ниже:

Производительность модели достигает максимума, когда предоставленные данные составляют менее 0,2 доли от исходного набора данных.

Первоначально опубликовано на https://www.analyticsvidhya.com 12 февраля 2020 г.