Explain! Explain! Explain!


Predictive modeling is fun. With random forest, xgboost, lightgbm and other elastic models…
Problems start when someone is asking how predictions are calculated.
Well, some black boxes are hard to explain.
And this is why we need good explainers.

In the June Aleksandra Paluszynska defended her master thesis Structure mining and knowledge extraction from random forest. Find the corresponding package randomForestExplainer and its vignette here.

In the September David Foster published a very interesting package xgboostExplainer. Try it to extract useful information from a xgboost model and create waterfall plots that explain variable contributions in predictions. Read more about this package here.

In the October Albert Cheng published lightgbmExplainer. Package with waterfall plots implemented for lightGBM models. Its usage is very similar to the xgboostExplainer package.

Waterfall plots that explain single predictions are great. They are useful also for linear models. So if you are working with lm() or glm() try the brand new breakDown package (hmm, maybe it should be named glmExplainer). It creates graphical explanations for predictions and has such a nice cheatsheet:

breakDownCheatsheet

Install the package from https://pbiecek.github.io/breakDown/.

Thanks to RStudio for the cheatsheet’s template.

Z pamiętnika nauczyciela akademickiego – Irracjonalne wybory

TL;DR

Wybory studentów są czasem nieracjonalne, przynajmniej z mojego punktu widzenia. Ale czasem to znaczenie lepiej i bardzo mnie to cieszy.

Dłuższa wersja

Na przedmiocie Techniki Wizualizacji Danych mam w tym roku bardzo silną grupę matematyków ze specjalności SMAD (statystyka i analiza danych) i informatyków ze specjalności PAD (przetwarzanie i analiza danych). W semestrze mamy trzy projekty i spodziewałem się, że wyniki każdego będą tak ciekawe, że je tutaj opiszę.

Ale…

W terminie oddanie pierwszego projektu zadałem też całkiem wciągającą pracę domową. Projekt dotyczył wizualizacji danych komunikacji miejskiej VaVeL, praca domowa dotyczyła przeprowadzenia badania sprawdzającego jak ludzie odczytują dane z wykresów. Z projektu można było dostać do 100 punktów, praca domowa jest punktowana 10 punktów, z możliwością dodatkowego bonusu 10 punktów jeżeli będzie bardzo dobra. Projekt był dosyć silnie skierowany na konkretny dobór danych, praca domowa pozostawiała bardzo szerokie pole do interpretacji.
Czasu oczywiście niewiele, warto zrobić jedno i drugie ale projekt to 100 punktów a praca domowa max 20.
Na co studenci poświęcili więcej czasu?
Racjonalnie (więcej o tym na samym końcu) byłoby się skupić głownie na projekcie. Ale patrząc na wyniki, więcej czasu i serca widać w pracach domowych. Badania, które wykonali na pracę domową były tak ciekawe, że to właśnie o nich napiszę poniżej.

Ale o co chodzi

Punktem wyjścia do pracy domowej był esej Percepcja obrazu oraz trudność w wyobrażenia sobie co odbiorca widzi na naszym wykresie, jeżeli nie jest obciążony naszą wiedzą, co na tym wykresie chcieliśmy pokazać. Na wykładzie omawialiśmy sobie jak nasz mózg widzi wykresy, jak rozumie dane i co potrafi z wykresu odczytać a czego nie.
Zadaniem było przeprowadzenie badania na kolegach/koleżankach, badania oceniającego które wykresy są lepiej (=precyzyjniej) odczytywane.

I co z tego wyszło

Jedna z grup (Alicja Gosiewska, Kinga Jamróz, Maja Kalinowska, Karolina Marcinkowska) przygotowała internetową ankietę weryfikującą co internauci widzą a czego nie widzą a następnie zebrała wyniki w raporcie.

Ankietę można znaleźć w internecie TUTAJ i bardzo polecam ją zrobić. Jest świetnie przygotowana, zaskakująca i to po prostu dobra zabawa.

Wyniki z zebranych badań w postaci raportu są dostępne TUTAJ.
Uwierzcie, że po zrobieniu ankiety, będziecie chcieli wiedzieć jak zrobili ją inni.

Ciekawych prac domowych było oczywiście więcej.
Zespół (Mateusz Mazurkiewicz, Wojciech Rosiński, Dawid Stelmach) sprawdzał czy wykresy słupkowe sa faktycznie takie dobre jak je prowadzący rysuje.
Ta praca mierzy się z wykresami typu tree plot (Ahmed Abdelkarim, Aleksandra Hernik, Iwona Żochowska)
Z piktogramami (czy ISOTYPE) mierzyła się grupa (Paweł Pollak, Karol Prusinowski, Karol Szczawiński)
A zespół (Anton Lenartovich, Mateusz Mechelewski) rozstrzygał komu podobają się wykresy typu płatki śniegu.

A co do tytułowej irracjonalności.
Na jesienną pluchę polecam książkę Dana Ariely (dostępna też jako audiobook) Predictably Irrational: The Hidden Forces That Shape Our Decisions.
Oczywiście zachowania studentów wcale nie są irracjonalne. Zamiast wybrać zadanie z większą liczbą punktów wybrali zadanie ciekawsze w dłuższej perspektywie jest lepszym wyborem.
A to, jak pisałem na wstępie, bardzo mnie ucieszyło.

Co się działo na hakatonie Urban Sensors?

IMG_0936

Hakaton Urban Sensors odbył się 26 września, dzień przed konferencją WhyR? Poniżej opiszę z jakimi danymi walczyliśmy i co ciekawego udało się zrobić.

Dane

Podczas tej jednodniowej imprezy pracowaliśmy z miejskimi danymi pochodzącymi z projektu VaVeL. Dokładniej z trzema źródłami danych:

  • Danymi online o położeniu autobusów i tramwajów w Warszawie. Poprzez interface REST pobieraliśmy szczegółową informację o tym gdzie znajdują się obecnie autobusy i tramwaje w Warszawie, ile są spóźnione, w którym kierunku jadą, kto je prowadzi, jaki jest najbliższy przystanek itp.
  • Danymi offline o położeniu autobusów i tramwajów. W plikach tekstowych mieliśmy zebrane informacje o położeniach autobusów i tramwajów przez cały lipiec i wrzesień. To całkiem spore dane. Logi dla jednego dnia zajmują średnio około 2.5GB.
  • Danymi offline z telefonii komórkowej. Dla poszczególnych stref Warszawy mieliśmy informacje ile było zdarzeń w sieci komórkowej w poszczególnych godzinach. Dane pokrywały lipiec i wrzesień. Te dane nie były tak duże jak informacje o ruchu pojazdów, ale były bardzo ciekawe.

IMG_0957

Warsztaty

Hakaton rozpoczął się od dwóch krótkich warsztatów. Pierwszy prowadzony przez Przemysława Biecek opisywał jak dostać się do danych. Drugi prowadzony przez Ewę Baranowską poświęcony był interaktywnej wizualizacji z użyciem biblioteki D3. Materiały wideo z obu warsztatów będą dostępne na stronie hakatonu w połowie października.

IMG_0989

Po warsztatach, uczestników hakatonu przywitali przedstawiciele partnerów projektu VaVeL. W kolejności wystąpienia, byli to: dziekan wydziału MiNI PW prof. Wojciech Domitrz; dyrektor Biura Cyfryzacji Miasta um. st. Warszawy, p. Tadeusz Osowski i dr Jarosław Legierski z Orange Labs.

IMG_1024

Uczestnicy z entuzjazmem zabrali się do pracy z danymi. Intensywna praca trwała do godziny 20 i zakończyła się wieloma ciekawymi rozwiązaniami.
Zadanie nie było proste, dane były gigantyczne i nie wszystkie zespoły zdecydowały się na zaprezentowanie rozwiązań. Ale te zaprezentowane były bardzo ciekawe.

Wyniki

Prezentacje rozpoczął projekt Jana Bajerskiego, pokazujący jak wyglądają wizualizacje przejazdów autobusów i tramwajów na tle danych rozkładowych. Do wizualizacji wykorzystano diagramy Mareya. Z opracowanym narzędziem można się pobawić na stronie http://vis.tram.waw.pl (wersja rozwojowa).
Diagramy Mareya okazują się fantastycznym narzędziem by śledzić czy pojazdy się spóźniają, gdzie są wąskie gardła, jak bardzo się spóźniają, jak wydłuża się czas podróży. Można też łatwo zauważyć, czy autobusy tej samej linii mają tendencje do tworzenia ,,stad” kilku pojazdów jadących blisko siebie.

IMG_1040

Kolejne rozwiązanie przedstawiła Ewa Baranowska. Pozwala ono w czasie rzeczywistym śledzić gdzie znajdują się obecnie autobusy i tramwaje w naszej okolicy. Interaktywna wizualizacja znajduje się na tej stronie.

IMG_1046

Następnie Adam Wróbel przedstawił przeprowadzoną statystyczną analizę opóźnień tramwajów. Modelowanie z użyciem modeli regresyjnych pozwala szukać linii narażonych na wysokie ryzyko opóźnienia. Ciekawym wynikiem była ujemna korelacja przyrostów opóźnienia z przesuniętymi wartościami. Oznacza to, że (zgodnie z intuicją) motorniczy jeżeli ma opóźnienie i może je nadrobić to je nadrabia, a jeżeli jedzie przed rozkładem to zwalnia by zlikwidować nadczas.

IMG_1054

Silny zespół z firmy Pearson w składzie Krzysztof Jędrzejewski, Mikołaj Olszewski, Mikołaj Bogucki, Mateusz Otmianowski, Kacper Łodzikowski przedstawił aplikację shiny, którą udało się błyskawicznie zbudować w czasie hakatonu. Aplikacja o wdzięcznej nazwie CzyZdążę.pl pozwala na sprawdzenie, dla planowanej trasy przejazdu, gdzie obecnie jest najbliższy tramwaj/autobus na który trzeba się spieszyć i ile średnio potrwa przejazd. To było niesamowite oglądać ile udało się temu zespołowi wykonać w ciągu zaledwie kilku godzin.

IMG_1078

Pearson nie był jedyną firmą licznie reprezentowaną na hakatonie. Ciekawe rozwiązanie zaprezentował również zespół analityków z GfK Polonia w składzie Natalia Okińczyc, Barbara Czarnota, Andrzej Surma, Agnieszka Fronczyk. Przygotowali analizę przystanków skazanych na największe opóźnienia wraz z animowanymi wykresami wykonanymi w pakiecie animation.

IMG_1096

Aplikacji skiny było więcej. Ciekawą analizę z użyciem biblioteki leaflet i shiny wykonał zespół z firmy Neuca (Karolina Mazanowska, Kamil Sieklucki). Ich wyniki znaleźć można na GitHubie.

IMG_1019

Obok zespołów analityków z jednej firmy, w hakatonie brały udział zespoły w barwach wydziałowych. Silny zespół 100 składający się głównie ze studentów, doktorantów i absolwentów MIM UW zaprezentował ciekawą analizę danych dotyczącą dużych wydarzeń w mieście i ich wpływu na ruch miejski.
Ich wstępna analiza znajduje się pod tym adresem.

IMG_0948

IMG_1087

Wiele z opracowanych rozwiązań, razem z prezentacjami z warsztatów, można znaleźć w repozytorium GitHub.
Na zakończenie zorganizowaliśmy konkurs na najbardziej innowacyjne rozwiązanie.

Zwyciężył zespół z firmy Pearson, wyprzedzając o zaledwie kilka głosów rozwiązanie zaprezentowane przez Jana Bajerskiego. Zwycięska drużyna otrzymała na pamiątkę Pałac Kultury z nadrukowanym wielkim R.

IMG_1108

Realizacja hakatonu była możliwa dzięki wsparciu ze strony organizatorów: Aleksandry Dąbrowskiej, Alicji Gosiewskiej, Klaudii Korniluk, Marcina Kosińskiego i Konrada Więcko; licznych ekspertów merytorycznych wspierających nas ze strony Urzędu Miasta Warszawa; przedstawicieli MiNI w osobie Grzegorza Bagrowskiego i Jarosława Legierskiego, którzy wiedzieli wszystko o danych; Krzysztof Wittelsa który wspierał nas organizacyjne ze strony Urzędu Miasta oraz całego zespołu projektu VaVeL, który przygotował infrastrukturę z którą mogliśmy pracować.

IMG_1104

Hakaton już się zakończył, ale nie jest to ostatnia inicjatywa związana z analizą tych szalenie ciekawych danych. Wkrótce informacja o kolejnych.

Wizualna eksploracja modeli statystycznych @ MI2DataLab

W poprzednim tygodniu mieliśmy kolejne dwie obrony świetnych prac magisterskich zrealizowanych w MI2DataLab. Obie prace związane były z budową ciekawego narzędzia do eksploracji i wizualizacji modeli statystycznych. W obu przypadkach udało się zbudowac użyteczny pakiet do eksploracji modeli określonego typu.

Agnieszka Sitko obroniła pracę ,,Merge and Select: Visualization of a likelihood based k-sample adaptive fusing and model selection”, w której opisuje metodę i narzędzie do analizy relacji pomiędzy zmienną jakościową a odpowiedzią, która może być zmienną ilościową jedno lub wielowymiarową, zmienną binarną lub cenzorowaną.

Metoda jest zaimplementowana w narzędziu factorMerger. Poniżej ściągawka. Więcej materiałów: Wersja CRAN pakietu. Wersja developerska pakietu. Preprint artykułu. Winietka.

factorMerger-cheatsheet

Tego samego dnia Magda Młynarczyk obroniła pracę ,,Modele ryzyk konkurujących wraz z zastosowaniami w analizie chorych z nowotworami układu krwiotwórczego” w której opisuje metody analizy ryzyk konkurujących. W ramach pracy powstało narzędzie ułatwiające pracę z danymi tego rodzaju. Pakiet cr17 jest już dostępny na CRAN.

Screen Shot 2017-09-25 at 15.42.31

Więcej materiałów: Wersja CRAN pakietu. Wersja developerska pakietu. Winietka.

Obie prace, są częścią większej inicjatywy dotyczącej eksploracji i wizualizacji złożonych modeli statystycznych. O całej inicjatywie eksploracji wizualnej będzie można posłuchać na konferencji WhyR w piątek podczas mojego referatu ,,Show me your model”.

Gdzie jest mój autobus? Urban Sensors hakaton – rejestracja otwarta do poniedziałku


Jeszcze do poniedziałku można się zgłaszać na Urban Sensors – jednodniowy hakaton, który odbędzie się w Warszawie 26 września na wydziale MiNI Politechniki Warszawskiej (Koszykowa 75) – dzień przed konferencją WhyR.

Podczas hakatonu uczestnicy otrzymają tokeny dostępowe do danych online i historycznych o położeniu autobusów i tramwajów w Warszawie.

Poniżej znajduje się wycinek danych z zajawką jakie zmienne są mierzone dla tramwajów. Poza położeniem tramwaju i brygady, mamy informacje o najbliższym i kolejnym przystanku, prędkości pojazdu, kierunku, opóźnieniu, statusie, brygadzie itp.

Więcej o hakatonie przeczytać można tutaj. Formularz rejestracji dostępny jest tutaj.

Urban Sensors – hakuj dane o komunikacji w Warszawie

Urban Sensors to jednodniowy hakaton nad danymi miejskimi, który odbędzie się w Warszawie 26 września na wydziale MiNI Politechniki Warszawskiej (Koszykowa 75) – dzień przed konferencją WhyR.

Położenie online każdego tramwaju i autobusu

Kręcą Cię miejskie dane? Ten Hakaton to unikalna okazja pracy na dużych danych miejskich (więcej poniżej) wspólnie z pracownikami Urzędu Miasta Warszawa, którzy te dane znają od podszewki. Eksperci z urzędu miasta będą z nami przez czas trwania hakatonu, pomogą ocenić realizowalność nawet najbardziej szalonego pomysłu, zaproponują ciekawe tematy badawcze, wskażą gdzie szukać dodatkowych danych.

Hakaton prowadzony jest w ramach projektu VaVeL, dzięki któremu powstaje nowa unikatowa infrastruktura dostępu do bardzo głębokich danych online o tym co się dzieje w mieście. Podczas hakatonu będziemy pracowali na prototypowej platformie, z dostępem do danych których w takiej skali wcześniej nie było.

Dane z którymi będziemy pracować w pierwszej kolejności to położenie autobusów i tramwajów (GPS) oraz zagęszczenie osób w różnych rejonach Warszawy (na podstawie raportów ze stacji bazowych). Z danymi będzie można pracować w trybie online (online śledzenie gdzie jest teraz który autobus); trybie dostępu do danych historycznych (gigabajty danych o położeniu pojazdów z całego miesiąca); oraz trybie batch (zrzut danych dla dwóch wybranych ciekawych dni, względnie małe pliki).

Co będziemy robić na hakatonie?

Punktem wspólnym projektów na hakaton są dane miejskie, format rozwiązań może być dowolny. Przykładowe pomysły na projekty:
– tramRadar – aplikacja mobilna pokazująca gdzie w okolicy są w obecnej chwili tramwaje i jakie mają opóźnienie (jeżeli mają) na bazie danych online,
– automatycznie generowany dzienny raport z opóźnień w ruchu,
– system machine-learning przewidujący opóźnienie autobusów i tramwajów.
Można oczywiście też przyjść z własnym pomysłem.

Do samego hakatonu pozostało jeszcze trochę czasu. Jeżeli macie ciekawy pomysł na urozmaicenie tego wydarzenia, podzielcie się w komentarzach.

Podczas hakatonu nie planujemy bezpośrednich nagród finansowych.
Ale Urban Sensors to świetna okazja by popracować z danymi miejskimi nad projektem który może być wdrożony i skomercjalizowany, więc sława i pieniądze czekają na osoby, które na tej prototypowej platformie zbudują użyteczne usługi.

Jak się zapisać?

Zapisy na hakaton rozpoczną się 5 września.
Planujemy przyjąć 40-50 osób.
Pierwszeństwo będą miały osoby mogące pochwalić się ciekawymi realizacjami.
Informacja o zapisach pojawi się w pierwszej kolejności na stronie http://whyr.pl/hackathon/.

Co widać w lesie losowym?


Miesiąc temu ruszył MI2DataLab, kuźnia/warsztat z narzędziami do analizy danych.
Dzisiaj mieliśmy pierwszą, po oficjalnym otwarciu, obronę pracy magisterskiej w grupie MI2.

Aleksandra Paluszyńska z MIM UW obroniła pracę Structure mining and knowledge extraction from random forest with applications to The Cancer Genome Atlas.
W pracy opisała metodologię stojącą za opracowanym przez nią pakietem randomForestExplainer. Pakiet służy do wizualnej diagnostyki lasów losowych. Analizy ważnych zmiennych, ważnych interakcji, brzegowych zależności itp.

Pracę przeczytać można tutaj.

Pakiet można pobrać i zainstalować z CRAN lub GitHuba.

Krótka winietka opisująca pakiet jest dostępna tutaj.

Z pakietu warto skorzystać – już żaden las losowy nie będzie miał przed nami tajemnic.

Wielka Warszawa będzie miała 22 gminy!

Dzisiaj jest 1 kwietnia, więc sami rozumiecie. Pomimo to, wszystkie poniższe obliczenia są oparte o analizy rzeczywistych danych. Wyniki są w pełni repRodukowalne a skrypty R dostępne tutaj.

Wiele się w mediach pisze o projekcie ”Wielka Warszawa”, ale brakuje w tych dyskusjach konkretnych liczb. Jak wielka powinna być ta wielka Warszawa? Oczywiście największa na świecie (t.j. większa niż inne stolice), ale czy jeszcze większa? (nie większa niż Polska, ale o ile mniejsza?) Temu zagadnieniu poświęcony jest ten wpis.

Nie wiadomo po co powiększać stolicę, nie widać poparcia wśród mieszkańców, a wyniki referendum w Legionowie pokazują sprzeciw. Na potrzeby dalszego wpisu przyjmijmy, że chodzi o powiększenie Warszawy aby zoptymalizować obszar na którym poparcie w wyborach samorządowych dla partii PiS będzie największe (moglibyśmy to policzyć też dla dowolnej innej partii, ale obecnie tylko jedna partia ma zakusy by ten obszar zmieniać). Dodatkowo załóżmy, że środek obszaru jest w centrum Warszawy a sam obszar składa się gmin, których środki są w okręgu o promieniu X. Nasz problem redukuje się do zagadnienia: jak znaleźć X.

Ze tej strony pobieram wyniki wyborów samorządowych z roku 2014. Z tego pliku interesuje mnie dla każdej gminy liczba oddanych ważnych głosów oraz liczba głosów oddanych na partię PiS.
Z tej strony pobieram mapę z kształtami i współrzędnymi gmin.
Trochę R-magii i mamy taki wykres.

wtre

Na powyższym wykresie zaznaczyliśmy ile osób głosowało na PiS vs. na inny komitet w zależności od tego jak duży obszar wokół Warszawy rozważamy.

Jeszcze mało widać, unormujmy więc te dwie wartości i zobaczymy jak zmienia się procent osób głosujących na PiS w wyborach samorządowych 2014 w zależności od odległości od centrum Warszawy.

wpromien2

Ciekawe. Ta dziwaczna funkcja ma maksimum i to w całkiem niedużym promieniu. W Warszawie poparcie dla KW PiS jest mniejsze niż w okolicznych gminach. Ale gdy promień znacząco się zwiększy to okazuje się, że to poparcie znów maleje. Różnice nie są duże, rozpiętość tego wykresu to 2 punkty procentowe, ale zawsze coś. Mamy więc optymalny promień, zawierający 21 gmin wokół Warszawy.

Poniżej mapka z zaznaczonymi gminami w ,,optymalnym” okręgu. Procentem zaznaczono procent głosów na KW PiS wśród wszystkich ważnych głosów.

Czy więc tak będzie wyglądała Wielka Warszawa?

wwarszawa2

PS: Procent mandatów zdobytych przez komitety wyborcze jest dla dużych komitetów większy niż procent poparcie liczony na głosach.
PS2: Trzy najbliższe gminy, które się nie załapały to: Wiązowna, Jabłonna i Piaseczno.

Przewodnik po pakiecie R przetłumaczony na Python


Kody R, wykorzystywane w czterech rozdziałach ,,Przewodnika po pakiecie R”, są dostępne jako pliki knitra na tej stronie.

Krzysztof Trajkowski wykonał niesamowitą pracę, wszystkie te kody przetłumaczył na Python!
Można teraz zestawić przykłady z tych samych podrozdziałów Przewodnika i zobaczyć jak daną operacje wykonać w R a jak w Pythonie.
Tłumaczenia przykładów z Przewodnika na Python, również w formie skryptów knitrowych, znajdują się na tej stronie.

Nie są to zwykłe tłumaczenia!
Przykładowo, rozdział 5 ,,Przewodnika po pakiecie R” dotyczy bibliotek lattice, ggplot2 i graphics – trzech podstawowych systemów dla grafiki w R. W tłumaczeniu tego rozdziału, które wykonał Krzysiek, opisywana jest biblioteka seaborn bazująca na matplotlib, w której udało się odtworzyć całkiem wiernie zdecydowaną większość grafik eRowych (jeden z przykładów poniżej).
A niektóre grafiki, muszę przyznać, wyglądają ciekawiej niż oryginały.

PrzewodnikR_python

Krzysiek przygotował też dokument ,,Wprowadzenie do obliczeń w Pythonie”, dostępny jako pdf na tej stronie.

DIY – cheat sheets

I found recently, that in addition to a great list of cheatsheets designed by RStudio, one can also download a template for new cheatsheets from RStudio Cheat Sheets webpage.
With this template you can design your own cheatsheet, and submit it to the collection of Contributed Cheatsheets (Garrett Grolemund will help to improve the submission if needed).

Working on a new cheatsheet is pretty enjoying. You need to squeeze selected important stuff into a quite small surface like one or two pages.
Lots of fun.
I did it for eurostat and survminer packages (cheatsheets below).
And would love to see one for caret.