Menu
CoddyTech

Czy to może być przypadek?

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 43 z 64.

Pięciu czytelników kroju bezszeryfowego pokonało pięciu czytelników kroju szeryfowego o 6.6 sekundy. Gdyby krój pisma niczego nie zmieniał, dowolny czas mógłby znaleźć się w każdej grupie. Potasuj wyniki, aby to zobrazować:

Dziesięć czasów czytania jako komórki, pięć dla kroju szeryfowego na niebiesko i pięć dla kroju bezszeryfowego na pomarańczowo. Strzałka z etykietą rng.permutation(pooled) prowadzi do tych samych dziesięciu wartości w innej kolejności, podzielonych na fikcyjną grupę kroju szeryfowego ze średnią 48.4 i fikcyjną grupę kroju bezszeryfowego ze średnią 49.8: różnica +1.4 sekundy powstała przypadkiem

rng.permutation(a) zwraca potasowaną kopię. Powtórz to 1000 razy i zachowaj każdą pozorną różnicę:

serif = np.array([52, 47, 58, 50, 55])
sans = np.array([45, 49, 41, 50, 44])
pooled = np.concatenate([serif, sans])
rng = np.random.default_rng(4)
diffs = []
for i in range(1000):
    shuffled = rng.permutation(pooled)
    diffs.append(shuffled[5:].mean() - shuffled[:5].mean())

Histogram 1000 potasowanych różnic, od -7.8 do 7.8 sekundy, skupionych wokół 0, z czerwoną linią oznaczającą rzeczywistą różnicę, -6.6, blisko lewej krawędzi

Różnice szans skupiają się wokół 0; ta rzeczywista znajduje się blisko krawędzi. To test permutacyjny.

Zanim uznasz, że jeden model przewyższa drugi, sprawdź, czy losowe tasowanie rzadko powoduje tak dużą różnicę.

challenge icon

Wyzwanie

Średni

Psy uczyły się siadać na dwa sposoby: clicker i treats zawierają sesje każdego psa. Kod początkowy tworzy rng i shuffles.

  1. Oblicz rzeczywistą różnicę: średnia dla treats minus średnia dla clicker.
  2. Połącz clicker, a następnie treats; tasuj shuffles razy, podziel przy len(clicker), zachowaj taki sam kierunek każdej fikcyjnej różnicy; nie wykonuj żadnych innych losowań.
  3. Wyświetl rzeczywistą różnicę, pierwszą fikcyjną różnicę, najmniejszą i największą, z dokładnością do 2 miejsc po przecinku.

Dla innych psów:

Real difference: 3.0
First shuffle: -1.0
Smallest shuffled: -3.33
Largest shuffled: 3.67

Spróbuj swoich sił

import numpy as np

# Liczba sesji treningowych, których każdy pies potrzebował, aby nauczyć się komendy "sit"
clicker = np.array([9, 12, 8, 11, 10, 7, 13])
treats = np.array([14, 11, 15, 12, 16, 13])
# Nie zmieniaj poniższych wierszy
rng = np.random.default_rng(12)
shuffles = 1000

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online