Próbkowanie proste losowe i systematyczne

Próbkowanie w Pythonie

James Chapman

Curriculum Manager, DataCamp

Proste losowanie

Dłoń wyjmująca złożoną kartkę z pojemnika na losy.

Toczące się kule loteryjne.

Próbkowanie w Pythonie

Proste losowanie próby kaw

Ziarna kawy ułożone w rzędach i kolumnach.

Ziarna kawy ułożone w rzędach i kolumnach, część z nich jest wyszarzona.

Próbkowanie w Pythonie

Proste losowanie w pandas

coffee_ratings.sample(n=5, random_state=19000113)
     total_cup_points         variety country_of_origin  aroma  flavor  \
437             83.25            None          Colombia   7.92    7.75   
285             83.83  Yellow Bourbon            Brazil   7.92    7.50   
784             82.08            None          Colombia   7.50    7.42   
648             82.58         Caturra          Colombia   7.58    7.50   
155             84.58         Caturra          Colombia   7.42    7.67  

     aftertaste  body  balance  
437        7.25  7.83     7.58  
285        7.33  8.17     7.50  
784        7.42  7.67     7.42  
648        7.42  7.67     7.42  
155        7.75  8.08     7.83 
Próbkowanie w Pythonie

Próbkowanie systematyczne

Ziarna kawy ułożone w rzędach i kolumnach.

Ziarna kawy ułożone w rzędach i kolumnach, większość wyszarzona z wyjątkiem tych na przekątnej.

Próbkowanie w Pythonie

Próbkowanie systematyczne – wyznaczanie interwału

sample_size = 5

pop_size = len(coffee_ratings)
print(pop_size)
1338
interval = pop_size // sample_size

print(interval)
267
Próbkowanie w Pythonie

Próbkowanie systematyczne – wybór wierszy

coffee_ratings.iloc[::interval]
      total_cup_points  variety country_of_origin  aroma  flavor  aftertaste  \
0                90.58     None          Ethiopia   8.67    8.83        8.67   
267              83.92     None          Colombia   7.83    7.75        7.58   
534              82.92  Bourbon       El Salvador   7.50    7.50        7.75   
801              82.00   Typica            Taiwan   7.33    7.50        7.17   
1068             80.50    Other            Taiwan   7.17    7.17        7.17   

      body  balance  
0     8.50     8.42  
267   7.75     7.75  
534   7.92     7.83  
801   7.50     7.33  
1068  7.17     7.25  
Próbkowanie w Pythonie

Problem z próbkowaniem systematycznym

coffee_ratings_with_id = coffee_ratings.reset_index()
coffee_ratings_with_id.plot(x="index", y="aftertaste", kind="scatter")
plt.show()

Wykres punktowy ocen posmaku względem indeksów.

Próbkowanie systematyczne jest bezpieczne tylko wtedy, gdy na wykresie punktowym nie widać wzorca

Próbkowanie w Pythonie

Jak bezpiecznie stosować próbkowanie systematyczne

shuffled = coffee_ratings.sample(frac=1)

shuffled = shuffled.reset_index(drop=True).reset_index()
shuffled.plot(x="index", y="aftertaste", kind="scatter") plt.show()

Wykres punktowy ocen posmaku względem indeksów po przetasowaniu zbioru danych.

Przetasowanie wierszy + próbkowanie systematyczne daje ten sam efekt co proste losowanie

Próbkowanie w Pythonie

Czas na ćwiczenia!

Próbkowanie w Pythonie

Preparing Video For Download...