📌 Что такое bootstrap ?



💬 Спрашивают в 14% собеседований



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



Основные шаги



1️⃣ Выборка с заменой: Создаются множество подвыборок (bootstrap samples) из исходного набора данных путем случайного выбора наблюдений с возвращением. Размер каждой подвыборки равен размеру исходной выборки.



2️⃣ Вычисление статистики: Для каждой подвыборки вычисляется интересующая статистика (например, среднее, медиана, стандартное отклонение).



3️⃣ Оценка распределения статистики: После получения большого количества таких подвыборок и соответствующих статистик, строится эмпирическое распределение этой статистики.



Пример

import numpy as np



# Исходные данные

data = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])



# Параметры Bootstrap

n_iterations = 1000 # Количество bootstrap-выборок

n_size = len(data) # Размер каждой выборки (равен размеру исходных данных)



# Функция для вычисления статистики (в данном случае среднего)

def bootstrap_mean(data, n_iterations, n_size):

means = []

for _ in range(n_iterations):

sample = np.random.choice(data, size=n_size, replace=True)

sample_mean = np.mean(sample)

means.append(sample_mean)

return means



# Получение распределения средних значений

bootstrap_means = bootstrap_mean(data, n_iterations, n_size)



# Оценка среднего и стандартной ошибки

mean_estimate = np.mean(bootstrap_means)

standard_error = np.std(bootstrap_means)



print(f"Оценка среднего: {mean_estimate}")

print(f"Стандартная ошибка: {standard_error}")




Применение метода



1️⃣ Оценка доверительных интервалов: Bootstrap можно использовать для оценки доверительных интервалов статистик.



2️⃣ Оценка распределения статистики: Помогает построить распределение статистики, когда это сложно сделать аналитически.



3️⃣ Улучшение моделей машинного обучения: Bootstrap используется в методах ансамблевого обучения, таких как случайные леса (Random Forest), для создания нескольких моделей на разных подвыборках данных.



Построим 95%-й доверительный интервал для среднего значения с использованием Bootstrap.

# Исходные данные

data = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])



# Параметры Bootstrap

n_iterations = 1000

n_size = len(data)



# Функция для вычисления доверительного интервала

def bootstrap_confidence_interval(data, n_iterations, n_size, confidence_level=0.95):

means = []

for _ in range(n_iterations):

sample = np.random.choice(data, size=n_size, replace=True)

sample_mean = np.mean(sample)

means.append(sample_mean)

lower_percentile = (1.0 - confidence_level) / 2.0 * 100

upper_percentile = (confidence_level + (1.0 - confidence_level) / 2.0) * 100

lower_bound = np.percentile(means, lower_percentile)

upper_bound = np.percentile(means, upper_percentile)

return lower_bound, upper_bound



# Получение доверительного интервала

lower, upper = bootstrap_confidence_interval(data, n_iterations, n_size)



print(f"95%-й доверительный интервал для среднего: [{lower}, {upper}]")




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



🔥 ТОП ВОПРОСОВ С СОБЕСОВ



🔒 База собесов | 🔒 База тестовых