Вступ до бутстрепінгу

Sampling у Python

James Chapman

Curriculum Manager, DataCamp

З поверненням чи без

Вибірка без повернення:

Ігрові карти на столі в казино.

Вибірка з поверненням («ресемплінг»):

Чотири кидки кубиків.

Sampling у Python

Просте випадкове відбирання без повернення

Генеральна сукупність:

Кавові зерна, розкладені рядами й колонками.

Вибірка:

Кавові зерна рядами й колонками, більшість із них заокремлені сірим.

Sampling у Python

Просте випадкове відбирання з поверненням

Генеральна сукупність:

Кавові зерна, розкладені рядами й колонками.

Ресемплінг:

Випадкова вибірка кавових зерен, деякі дублюються.

Sampling у Python

Навіщо відбирати з поверненням?

  • coffee_ratings: вибірка з більшої сукупності всіх кав
  • Кожна кава у вибірці представляє багато гіпотетичних кав із сукупності
  • Вибірка з поверненням слугує наближенням
Sampling у Python

Підготовка даних про каву

coffee_focus = coffee_ratings[["variety", "country_of_origin", "flavor"]]
coffee_focus = coffee_focus.reset_index()
      index  variety country_of_origin  flavor
0         0     None          Ethiopia    8.83
1         1    Other          Ethiopia    8.67
2         2  Bourbon         Guatemala    8.50
3         3     None          Ethiopia    8.58
4         4    Other          Ethiopia    8.50
...     ...      ...               ...     ...
1333   1333     None           Ecuador    7.58
1334   1334     None           Ecuador    7.67
1335   1335     None     United States    7.33
1336   1336     None             India    6.83
1337   1337     None           Vietnam    6.67

[1338 rows x 4 columns]
Sampling у Python

Ресемплінг за допомогою .sample()

coffee_resamp = coffee_focus.sample(frac=1, replace=True)
      index  variety country_of_origin  flavor
1140   1140  Bourbon         Guatemala    7.25
57       57  Bourbon         Guatemala    8.00
1152   1152  Bourbon            Mexico    7.08
621     621  Caturra          Thailand    7.50
44       44     SL28             Kenya    8.08
...     ...      ...               ...     ...
996     996   Typica            Mexico    7.33
1090   1090  Bourbon         Guatemala    7.33
918     918    Other         Guatemala    7.42
249     249  Caturra          Colombia    7.67
467     467  Caturra          Colombia    7.50

[1338 rows x 4 columns]
Sampling у Python

Повторювані зразки кави

coffee_resamp["index"].value_counts()
658     5
167     4
363     4
357     4
1047    4
       ..
771     1
770     1
766     1
764     1
0       1
Name: index, Length: 868, dtype: int64
Sampling у Python

Пропущені зразки кави

num_unique_coffees = len(coffee_resamp.drop_duplicates(subset="index"))
868
len(coffee_ratings) - num_unique_coffees
470
Sampling у Python

Бутстрепінг

Протилежність відбиранню з генеральної сукупності

Sampling: перехід від сукупності до меншої вибірки

Bootstrapping: побудова теоретичної сукупності з вибірки

Застосування бутстрепінгу:

  • Зрозуміти варіативність вибірки, маючи лише одну вибірку

Ковбойський чобіт.

Sampling у Python

Процес бутстрепінгу

  1. Зробіть ресемпл такого ж розміру, як початкова вибірка
  2. Обчисліть потрібну статистику для цього бутстреп-зразка
  3. Повторіть кроки 1 і 2 багато разів

Отримані значення — це бутстреп-статистики, вони формують бутстреп-розподіл

Sampling у Python

Бутстреп середнього смаку кави

import numpy as np

mean_flavors_1000 = []
for i in range(1000):
mean_flavors_1000.append(
np.mean(coffee_sample.sample(frac=1, replace=True)['flavor'])
)
Sampling у Python

Гістограма бутстреп-розподілу

import matplotlib.pyplot as plt
plt.hist(mean_flavors_1000)
plt.show()

Бутстреп-розподіл середнього показника смаку

Sampling у Python

Давайте потренуємось!

Sampling у Python

Preparing Video For Download...