Nagrania z ICML 2016

Przeglądając zaległe wiadomości z wakacji trafiłem na link do nagrań referatów i warsztatów z konferencji International Conference on Machine Learning (ICML). Są one dostępne na stronie http://techtalks.tv/icml/2016/.

Dlaczego warto się im przyjrzeć? Susan Athey określiła ICML jako Hottest conference in the hottest area (oczywiście różne obszary są gorętsze dla różnych osób). Referatów jest wiele, póki co obejrzałem tylko sesje plenarne (te zazwyczaj są bardzo dobre lub wyśmienite).

Do gustu przypadły mi referaty o analizie dużych grafów Mining Large Graphs: Patterns, Anomalies, and Fraud Detection, analizie obrazu A Quest for Visual Intelligence in Computers i referat o analizie przyczynowo skutkowej Causal Inference for Policy Evaluation (trzy na pięć).

Wszystkich nagrań jest bardzo wiele, ale jeżeli znacie jakieś warte polecenia to śmiało sugerujcie w komentarzach.

Statystyk na wakacjach

Miejsce: Park rozrywki w Szklarskiej Porębie, kolejka do kina 6D.
Aktorzy: [S]taystyk na wakacjach i [B]ileterka.
Czas: 14:55, na 5 minut przed seansem w ww. kinie. Seanse odbywają się co 30 minut. Przed wejściem ustawia się kolejka. 10 minut przed seansem osoby z kolejki zaczynają wchodzić do kina. Wchodzi pierwsze 25 osób.

– Na ten seans już nie ma miejsc, proszę przyjść na kolejny o 15:30 – informuje Bileterka.
– A ile minut przed seansem powinienem przyjść by były jeszcze miejsca? – grzecznie pyta Statystyk.
– 5 minut przed seansem, tak jak jest napisane w regulaminie – Bileterka wskazuje palcem regulamin.
– Ale teraz jestem 5 minut przed seansem i już nie ma miejsc – zauważa Statytyk. – Więc ile minut wcześniej powinienem przyjść aby były jeszcze miejsca? – docieka.
– To zależy od tego ile osób przyjdzie. Musi być Pan najpóźniej 5 minut przed seansem. – powtarza Bileterka zniecierpliwionym głosem.
– A ile minut przed seansem się zazwyczaj kończą bilety? – dopytuje Statystyk.

Mniej więcej tutaj dla mojej interlokutorki staje się jasne, że trafił się jej wyjątkowo dociekliwy/upierdliwy (strony mogą różnie określać tę cechę) osobnik. Jej odpowiedź jest już bardziej stanowcza.

– Różnie się kończą. To zależy ile osób przyjdzie na kolejny seans. A tego nikt nie wie – rozmówczyni niesłusznie zakłada, że odstraszy mnie brak precyzyjnych szacunków.

W tym miejscu przerwę relacjonowanie naszej rozmowy. Na kolejny seans przyszedłem 10 minut przed czasem i wszedłem mniej więcej w połowie kolejki.

Ale historia dopiero tutaj się zaczyna.

Przez kolejne dwie godziny moje szkraby szalały na dmuchańcach obok kina. Miałem trochę czasu by poobserwować kolejkę do kina, zebrać trochę danych i zastanowić się, jak sam bym odpowiedział na pytanie, które zadałem Bileterce.

Zagadnienie:

Oszacować ile minut przed seansem należy przyjść aby mieć 90% pewności, że wystarczy dla nas miejsc w kinie.

Dane:

Dla 4 seansów (dwie godziny obserwacji) mamy informację ile osób (najczęściej przychodzą całe rodziny) i ile minut przed seansem dołączyło do kolejki.

Model 1:

Rozwiązanie brutalne, praktycznie bez modelowania.
Dla każdego seansu liczymy ile minut przed seansem przyszła ostatnia osoba, która zmieściła się na sali. Dla naszych seansów było to odpowiednio 8,9,7,8 minut.

Rozwiązanie proste o uroku cepa. Bez modelu parametrycznego z czterech liczb trudno wyznaczyć 90% kwantyl. (Ok, można jeżeli jest się ultrasem bootstrapowcem).

Szukamy więc czegoś parametrycznego.

Model 2:

Zakładamy, że liczba osób dochodzących do kolejki opisana jest jednorodnym procesem Poissona.
Oznacza to, że zakładamy, że w pewnym okresie czasu, np. -15 do -5 minut przed seansem, chętni przychodzą pojedynczo ze stałą intensywnością (=nie w stałych odstępach czasu ale ze stałem prawdopodobieństwem pojawienia się).
Więcej o procesie Poissona np. tutaj.

I co dalej? Szacujemy intensywność przychodzenia osób (w tym modelu to średnia) i liczymy czas oczekiwania na przekroczenie przez proces Poissona bariery 22 osób (jeszcze my się musimy zmieścić).

Piękny parametryczny model.
Drażniące są tylko te nierealne założenia.
Może da się je osłabić.

Model 3:

Zakładamy, że liczba osób dochodzących do kolejki opisana jest złożonym procesem Poissona.
Złożony proces Poissona to połączenie zwykłego procesu Poissona (opisuje momenty, w których do kolejki dochodzi rodzina) oraz skoków o różnej wielkości (wielkość skoku to liczba osób w rodzinie, które dołączyły do kolejki, z obserwacji od 1 do 5, najczęściej 2-3). Jest to rozszerzenie modelu 2, w którym uwzględniamy to, że do kolejki na raz dołączyć może kilka osób.
Więcej o złożonym procesie Poissona np. tutaj.

I co dalej? Osobno szacujemy intensywność pojawiania się rodzin (podobnie model z jednym parametrem szacowanym średnią), osobno szacujemy rozkład wielkości rodziny. Mając te składowe, wyznaczamy (np. symulacyjnie) rozkład czasu przekroczenia bariery 22 osób.

Model coraz piękniejszy, wymaga estymacji parametrów dwóch rozkładów (czasu przyjścia i wielkości rodziny). Drażni jedynie to założenie o stałej intensywności pojawiania się rodzin na odcinku -15 min do -5 min przed seansem.

Model 4:

Wykorzystajmy złożony niejednorodny proces Poissona. Czyli to co powyżej, ale tym razem intensywność pojawiania się rodzin jest nieujemną funkcją na odcinku -30 min do -5 min. Na początku raczej bliska zera (kto ustawia się w kolejce na 20 minut przed seansem gdy nikt inny w kolejce nie stoi?) a później szybko skacząca w czasie -15 min do -5 min przed seansem (nauczeni doświadczeniem wiedzą, że warto zjawić się wcześniej).
To już jest TEN model. W zmiennej intensywności możemy nawet uwzględnić porę dnia, liczbę osób przebywających w parku rozrywki i kilka innych parametrów. Samą intensywność można szacować np. estymatorem jądrowym.

Jedynym problemem okazało się to, że o 18 zamykali park i nie dało się zebrać więcej danych.

Więcej o niejednorodnym procesie Poissona można przeczytać tutaj.

Inne pomysły na modele?

[*] Ilustracja pochodzi z opowiadania ,,Jak długo żyją Muffinki”.

Liczba medali na olimpiadzie w Rio a wielkość kraju


Zastanawiałem się, czy liczba medali zdobytych na olimpiadzie w Rio koreluje z wielkością kraju.

Dane o populacji krajów można pobrać z wikipedii. O liczbie medali np. z serwisu wp.pl. Pobieramy dane pakietem XML i rysujemy pakietem rbokeh (interaktywna grafika, nadająca się na strony www).
Kod R dla obu tych operacji jest tutaj).

Otrzymujemy taki wykres (obie osie są w skali logarytmicznej). Korelacja Spearmana wynosi 0,44. Polska jest w okolicy 33 miejsca na obu osiach.

Wnioski? Korelacja jakaś jest. Co prawda są odstępstwa, częściej są to duże kraje o małej liczbie medali (Indie, Nigeria), rzadko odstępstwa dotyczą małego kraju o dużej liczbie medali.

BetaBit#3: nowa mini gra dla przyjaciół funkcji lm()

Wakacje w pełni. Dla tych, którzy chcieliby rozerwać się przy konsoli RStudio, mamy nową mini-grę z serii BetaBit. Gra nazywa się regression() i może być sporym wyzwaniem, o ile nie jest się bliskim przyjacielem funkcji lm().

Aby zagrać, należy zainstalować i włączyć wersję 1.3 pakietu BetaBit. Np. poleceniami

install.packages("BetaBit")
library("BetaBit")

Grę opracował Tomasz Żółtak. Podczas gry, w ramach wakacyjnego stażu, Beta i Bit pomagają profesorowi Pearsonowi w analizie pewnych danych edukacyjnych. Po rozwiązaniu wszystkich zadań prof. Pearson uraczy nas sentencją, która jest rozwiązaniem gry.

Przyjemnej rozrywki!

Osobom, które przyślą do końca sierpnia ww. sentencję wraz z rozwiązaniami zadań, prześlę kubek Bety (pierwsze 5 poprawnych zgłoszeń) lub opowiadania BetaBit (pozostałe rozwiązania).

Bez względu na to czy uda się czy nie rozwiązać wszystkie etapy, będę zobowiązany za wnioski, pomysły i komentarze dotyczące tej lub pozostałych gier z serii.

Rozwiązania i komentarze można wysyłać na przemyslaw.biecek na serwerze gmail.com.