Rytm miasta, czyli z jakimi danymi będziemy pracować na Urban Sensors hakaton

animation

Już we wtorek rozpocznie się Urban Sensors, czyli jednodniowy hakaton oparty o miejskie dane z nowej platformy VaVeL.

Poza położeniami autobusów i tramwajów, jedno ze źródeł danych dostępnych dla hakujących, to informacja o liczbie notyfikacji od telefonów komórkowych ze stacjami bazowymi.

datetime,zoneid,intensity,geom4326,geom3857
2017-09-04 00:00:00,1,0.02072913149322,"MULTIPOLYGON(((20.9832771275726 52.259601516439,20.9876244827842 52.259569327517,20.9876244827865 52.259569327511,20.9875959970902 ...
2017-09-04 01:00:00,1,0.0135282957291873,"MULTIPOLYGON(((20.9832771275726 52.259601516439,20.9876244827842 52.259569327517,20.9876244827865 52.259569327511,20.9875959970902 ...
2017-09-04 02:00:00,1,0.011225094014391,"MULTIPOLYGON(((20.9832771275726 52.259601516439,20.9876244827842 52.259569327517,20.9876244827865 52.259569327511,20.9875959970902 ...

Animacja powyżej pokazuje jak aktywność telefonów pulsuje w rytmie dziennym.
Ścisłe centrum jak widać nie chodzi spać.
Miejscami widać dziwniejsze fluktuacje jak np. Dolinka Służewiecka wieczorem 16 września.

Rysunek poniżej przedstawia profil aktywności dla trzech wybranych punktów w okresie kilku dni.

Screen Shot 2017-09-23 at 00.55.18

Jak takie dane ciekawie zintegrować z położeniami autobusów i tramwajów?
Zobaczymy na hakatonie, a najciekawsze rozwiązania pokażemy na blogu.

Do przygotowania pierwszej animacji użyto pakietu animation i programu ImageMagick. Druga to oczywiście dziecko ggplot2 i sf.

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/.

Prezentacje publiczne

Czy zdarza Ci się prezentować na publicznym forum wyniki swoich badań/analiz? Jeżeli tak, to ten wpis może Cię zainteresować.

Miesiąc temu, na konferencji UseR2017 miałem referat dotyczący wizualizacji modeli uczenia maszynowego. Temat spotkał się ze sporym zainteresowaniem, na tę 15 minutową prelekcję zapisało się ponad 500 osób.
Jak się do takiej prezentacji przygotować?
Poniżej podzielę się kilkoma doświadczeniami i materiałami.

Książki

704501127o
Jakiś czas temu otrzymałem od PWN książkę Piotra Wasylczyka ,,Prezentacje naukowe – Praktyczny poradnik’’ (link do strony pwn). Książkę otrzymałem bezpłatnie z prośbą o komentarz i prawdopodobnie z nadzieją na reklamę.
Książkę przeczytałem i muszę powiedzieć wprost, że jest świetna, z pewnością będę polecał dyplomantom.
Dla początkujących to lektura obowiązkowa. Znajduje się w niej wiele praktycznych porad dotyczących tego jak przygotować slajdy na prezentacje, jak przygotować plan wystąpienia, jak przygotować siebie, jak rozpocząć prezentacje, jak mówić do różnych odbiorców. Wszystkie te wątki z konkretnymi ćwiczeniami.

Zaznaczyć muszę, że nie zgadzam się z wszystkimi opiniami przedstawionymi w tej książce. Np. Piotr Wasylczuk argumentuje, że nie ma sensu na początku prezentacji omawiać planu prezentacji, a moim zdaniem w wielu sytuacjach to pomaga słuchaczowi ustawić oczekiwania. Ale nawet opinie z którymi się nie zgadzamy prowokują nas do głębszego zastanowienia się nad danym tematem. Warto poznać argumenty autora.

To co mi się w tej książce podoba to skupienie na celu prezentacji, liczne ćwiczenia oraz bardzo wiele przykładów i ilustracji ,,z życia’’.
Autora w akcji można zobaczyć np. na nagraniu finału FameLab 2016.
Część z umieszczonych tam ćwiczeń planuję sprawdzić na zajęciach ze studentami. Książkę można przejrzeć w MI2DataLabie.

cover
Oczywiście książek o efektywnej komunikacji jest więcej. Ostatnio, duże wrażenie zrobiła na mnie książka Trees, maps, and theorems Jean-Luc Doumonta. Pozycja dosyć droga (80 EUR, >10x więcej niż ,,Prezentacje naukowe’’) ale bardzo ciekawie zaprojektowana. Być może określenie ,,książka’’ nie jest właściwe, bardziej pasowałoby ,,album’’.
Złośliwi powiedzą, że co druga strona to spis treści a gigantyczne marginesy są niezbędne by względnie małą liczbę słów rozciągnąć na 169 stron. Ale eksperymentowanie ze składem pozwala na lepsze uhonorowanie przedstawianej treści.

Zdanie na temat tego projektu można wyrobić sobie po lekturze kilku stron umieszczonych pod adresem http://www.treesmapsandtheorems.com/ lub po obejrzeniu prezentacji autora na TEDxGhent https://www.youtube.com/watch?v=VK74BIaxkYE.

Okladka-724x1024Zdarza mi się oglądać dobre wystąpienia, poprowadzone wokół ciekawego tematu, ale spalone przez złą prezentację danych – które miały być głównym wynikiem. Dziwaczne wykresy z ozdobnikami, z których nie sposób cokolwiek odczytać. Jeżeli wyniki liczbowe stanowią ważny punkt naszego wystąpienia to trzeba je pokazać w sposób pozwalający na szybkie i poprawne zrozumienie. Nie zawsze jest to proste. W tym obszarze polecam ,,Zbiór esejów o sztuce prezentowania danych” który napisałem jakiś czas temu. W postaci HTML jest dostępna na tej stronie.

Blogi i wideo

Wiele ciekawych pomysłów na format prelekcji można też znaleźć w blogosferze. Polecam blog StoSłów http://www.stoslow.pl/ prowadzony przez Marka Stączka (EdisonTeam). Marek prowadzi warsztaty z wystąpień publicznych i jest duża szansa, że poprowadzi taki warsztat w tym roku w naszym DataLabie.
Ostatnio pisał na blogu na temat zwięzłości wypowiedzi. Oczywistą oczywistością jest to, że do prezentacji trzeba się przygotować. Mniej oczywiste jest to, że im krótsza prezentacja tym dłużej trwa przygotowanie. Dwugodzinny wykład wymaga zazwyczaj krótkiego przypomnienia sobie kluczowych wyników ale już dziesięcio- piętnasto- minutowa prezentacja to czasem kilka(naście) dni przygotowań (więcej tutaj).


Oczywiście świetnym źródłem inspiracji dotyczących wystąpień publicznych jest konferencja TED. Zdarzają się tam prezentacje o niczym, ale jest też bardzo wiele perełek, w których ciekawa treść została fantastycznie przedstawiona. Np. prezentacja Susan Cain o introwertykach pokazuje, że nawet jeżeli tłumy widzów nas przerażają, to możemy przygotować świetną prezentację na ważny dla nas temat.

Świetny jest też odczyt J.K. Rowling na zakończenie roku na Stanfordzie. Odczyt ten jest czytany w większości z kartki a więc w sprzeczności z typową radą ,,nie czytaj z kartki”. Ale dotyczy historii ważnej dla Rowling i interesującej dla słuchacza. W głosie autorki słychać emocje, a sama prelekcja zapada w pamięć. Całość zobaczyć można tutaj.

Warsztaty

Książki i blogi to ciekawe źródło inspiracji, ale nie zastąpią ćwiczeń praktycznych oraz informacji zwrotnych od bardziej doświadczonych kolegów/koleżanek.

Zawsze można w swojej okolicy poszukać przydatnego kursu dotyczącego publicznych wystąpień. Na rynku takich kursów jest wiele, np. prowadzone przez wspominanego wyżej Marka Stączka. Dla doktorantów i pracowników naukowych często uczelnie organizują specjalistyczne warsztaty.
Np. w ofercie Uniwersytetu Warszawskiego dla pracowników i doktorantów znajdują się świetne zajęcia z emisji głosu prowadzone przez Instytut Polonistyki Stosowanej (brałem udział, gorąco polecam). W USOSie jest też kurs oferowany dla studentów, ale akurat z nim nie miałem do czynienia.

Jakiś czas temu Nowoczesny Uniwersytet UW (http://www.nuw.uw.edu.pl/) organizował warsztaty z Dobromirem Dziewulakiem dla doktorantów i pracowników naukowko-dydaktycznych. Byłem, polecam. Swoją drogą, Dobromir prowadzi blog w serwisie Wszystko Co Najważniejsze poświęcony dydaktyce – ciekawa lektura.

Jakiś czas temu Fundacja na rzecz Nauki Polskiej w ramach projektu Skills organizowała warsztaty i szkolenia dla naukowców. Akurat trafiłem na warsztaty prowadzone przez aktora – Jacka Rozenka, bardzo ciekawe doświadczenie. Projekt co prawda się zakończył, ale warto śledzić stronę FNP, być może temat będzie kontynuowany, tym bardziej, że Fundacja bardzo stawia na rozwój naukowców.

Take home

Prezentacje naukowe to oczywiście temat rzeka.
Ale w rzekach łatwo utonąć.
Trzy moim zdaniem najważniejsze wątki to.

(1) Pamiętaj co chcesz powiedzieć.
Bez względu na to, jak długa jest Twoja prezentacja, najprawdopodobniej większość osób zapamięta z niej maksymalnie trzy zadania – punkty. Zapisz sobie kluczowe punkty, które chciałbyś by były zapamiętane. Przygotuj prezentacje tak by ułatwić zrozumienie dlaczego akurat te punkty są ważne. Nie przesadzaj z treścią. Mów w sposób prosty i zrozumiały.

(2) Bądź przygotowany.
Dobra prezentacja wymaga przygotowania. Im jest ważniejsza, tym dłużej się ją przygotowuje. Im krócej ma trwać, tym dłużej się ją przygotowuje. Gdy doktorant jedzie na międzynarodową konferencję pokazać w 20 minut wyniki nad którymi pracował przez dwa lata, nie jest niczym dziwnym spędzenie kilku dni (!) nad jedną konferencyjną prezentacją. Gdy prezentacja jest bardzo krótka (5 min), dobrym pomysłem może być nauczenie się jej na pamięć. Nie musisz mówić z pamięci każdego słowa, ale zawsze masz w pamięci gotowe zdania gdyby akurat skończyła się wena. Jeżeli prezentacja ma być dłuższa, dobrym pomysłem jest poprowadzenie jej wcześniej przed mniejszym i znanym Ci audytorium – np. na seminarium grupowym. Po takim treningu, właściwa prezentacja już Cię nie zaskoczy.

(3) Bądź wypoczęty i zrelaksowany.
Wyśpij się, zjedz lekki posiłek, miej pod ręką wodę aby zwilżyć gardło. Pamiętaj, że na prelekcje przyszły osoby przyjaźnie nastawione, które chcą posłuchać tego co masz do powiedzenia. Stres jest twoim wrogiem i naucz się go oswajać. W małych dawkach pobudza i może być użyteczny. Kilka głębokich oddechów, proste ćwiczenia ruchowe mogą bardzo pomóc. Jeżeli się zatniesz zrób krótką przerwę i wróć do tematu. Pamiętaj co i dlaczego chcesz powiedzieć.

Przyjdź, posłuchaj, porozmawiaj – 13.IV Wrocław, 8.V Kraków, 26.V Warszawa

W najbliższych dniach prowadzę kilka wykładów i warsztatów.

Czwartek 13.IV – UWr Wrocław
godzina 14-15 Wykład o biostatystyce i dużych danych.
godzina 15-17 Warsztaty z wizualizacji danych.

Więcej informacji: http://www.blog.math.uni.wroc.pl/node/171.

Poniedziałek 08.V – PKr Kraków
godzina 15-17 Warsztaty z wizualizacji danych.
godzina 17-18 Wykład statystyka obliczeniowa, duże dane i genetyka.

Więcej informacji: https://www.meetup.com/Cracow-R-Users-Group/events/239021538/.

Piątek 26.V – PW Warszawa
Wykład o biostatystyce i dużych danych.

Te spotkania to fragment serii wyjazdów poświęconych (1) zastosowaniom statystyki obliczeniowej w analizie dużych danych onkologicznych oraz (2) nowym narzędziom do wizualizacji danych/wizualizacji modeli statystycznych.
Między innymi prowadzę te spotkania z nadzieją na znalezienie współpracowników (doktorantów/post-doków) zainteresowanych którymś z ww. tematów.
Ciekawych projektów do realizacji jest sporo. Zainteresowanych zapraszam więc do pogadanek przed/po spotkaniu.

Poprzednie spotkania z tej serii

Czwartek 09.III – MiNI PW Warszawa
godzina 18-19 Historia R.

Czwartek 16.IIIUniejów
godzina 13-14 Wykład wizualizacja danych.

Czwartek 23.III – CO/UEP Poznań
godzina 13-14 Wykład o biostatystyce i dużych danych.
godzina 18-19 Historia R.

Czwartek 06.IV – MIM UW Warszawa
godzina 14-15 Wykład o biostatystyce i dużych danych.

Coś jest w tych czwartkach.

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.

Przecinające się krzywe przeżycia

Spotkałem się ostatnio z ciekawym problemem.
Mamy dwie grupy pacjentów na dwóch różnych schematach leczenia i chcemy porównać ich dalsze losy, a konkretnie krzywe niepowodzenia leczenia (prawdopodobieństwo zgonu/wznowy).
Na pierwszy rzut oka klasyczna analiza przeżycia, test log-rank i po sprawie.

Ale szybko okazuje się, że krzywe przeżycia się przecinają, co więcej oczekiwać można tego po wcześniejszej rozmowie z lekarzem. Jeden schemat leczenia jest bardziej agresywny więc może prowadzić do gorszych rokowań krótkookresowych, ale lepszych w dalszej perspektywie.

Klasyczny test dla krzywych przeżycia oparty jest o odległość pomiędzy krzywymi, mierzoną jest jako ważona suma kwadratów odległości w poszczególnych punktach. Ale gdy krzywe się przecinają to taki test ma niską moc i nie ma sensu go stosować.

A więc co robić?
Ciekawe studium symulacyjne porównujące różne podejścia do testowania przecinających się krzywych zostało opublikowane dwa lata temu w Plos One (!).
Okazuje się, że dobrze sprawdza się rodzina testów Renyi, która jest oparta o supremum ważonych odległości pomiędzy krzywymi przeżycia.
W R te testy są zaimplementowane w pakiecie survMisc w funkcji comp. Jest to znacznie mocniejszy test dla przecinających się krzywych.

A przy okazji, okazuje się, że zmianę w hazardach w rozpatrywanym problemie dobrze ilustrują reszty Schonefelda. Poniższy wykres pokazuje, że hazard w jednej grupie jest znacznie wyższy do 12 miesiąca, a później gorsze losy czekają pacjentów drugiej grupy.

Oba wykresy wykonane pakietem survminer.

Opisy osi usunąłem ponieważ wyniki tych analiz jeszcze nie są opublikowane, ale też nazwy nie mają większego znaczenia.

How to hire a Data Scientist?


W poprzednim tygodniu odbyła się konferencja Big Data Technology Summit 2017. Organizatorom udało się osiągnąć dwa cele, było wiele ciekawych merytorycznych referatów oraz wielu ciekawych uczestników z którymi można porozmawiać w kuluarach. Podczas sesji round-table miałem przyjemność poprowadzić stolik How to hire a Data Scientist? Wrażenia z tego stolika opisuję poniżej.

Dyskusja potoczyła się zaskakująco, choć na początku było dosyć klasycznie

Wśród uczestników tego stolika było kilku przedstawicieli biznesu, którzy do swoich firm lub działów szukają data scientistów (dalej juz piszę DS by nie kaleczyć tak bardzo języka), były też osoby zainteresowane rozwojem w tym kierunku.
Na początku było dosyć standardowo, czyli narzekanie, że zrekrutować DSa jest trudno. LinkedIn jest mało skuteczny, bo specjaliści dostają po kilka ogłoszeń tygodniowo i już ignorują większość z nich więc trzeba szukać innych ścieżek.
Na pytanie, co z rekrutacją na możliwie wczesnym etapie, jeszcze studentów na uczelniach, pojawiły się odpowiedzi, że ważna jest obecność firmy na uczelni ale (uczestnicy stolika) nie rekrutują osób na stanowisko DS na wczesnych latach a raczej starają się zdobyć już doświadczonych pracowników.
Samo w sobie to ciekawa deklaracja. Być może aby zostać DSem trzeba najpierw zjeść trochę chleba pracując na bardziej klasycznym stanowisku? A może uczenie się przez całe życie jest wpisane w zawód DS, a łatwiej się uczyć gdy ma się solidne podstawy po ukończonych dobrych studiach.

Z konstruktywnych wniosków pojawiło się np. stwierdzenie, że to co przyciąga DSa to ciekawe projekty i dostęp do ciekawych danych. W perspektywie dłuższego zatrudnienia, jest to silniejszym magnesem niż kolejna podwyżka. Ten motywator działa słabiej podczas pierwszej pracy, która motywowana jest najczęściej tym, że koledzy/żanki na studiach już zarabiają a ja jeszcze nie, ale gdy szukamy specjalistów w DS to właśnie możliwość rozwoju w ciekawym środowisku staje się coraz ważniejsza.
Ale jak dać znać pracownikom, że w firmie dzieją się ciekawe rzeczy? Jednym z rozwiązań (choć wciąż mało popularnym) jest blog pokazujący co ciekawego dzieje się w środku firmy/zespołu.

Później było jeszcze ciekawiej

Z ciekawszych wątków, w dalszej dyskusji pojawiła się np. wątpliwość, czy w ogóle warto szukać i rekrutować DSów?
Po co się zastanawiać jak rekrutować, jeżeli nie mamy pewności, że nasz biznes jest już gotowy aby przyjąć do pracy nowych DSów? Nawet jeżeli mamy nadwyżkę w budżecie na zespół DS, to warto świadomie określić po co nam ten zespół. W przeciwnym razie zdobędziemy kilka osób, które przyjdą, popracują rok, zobaczą że ich analizy są na nic i sobie pójdą.

Jeden z cytatów, który wpadł mi w ucho, to ,,jak wiemy DSy obumierają w samotności”. Czyli aby DSy pracowali efektywnie potrzebują zespołu, a może nawet całego ekosystemu wspierającego i uzupełniającego ich pracę.
Ale to wymaga od biznesu zbudowania zaplecza złożonego z inżynierów, którzy postawią i utrzymają te wszystkie sparki, hive’y, skonfigurują spotowe instancje na AWSie tak by potrzebne dane były zebrane i dostępne.
Jak również zaplecza po stronie kierowników, dyrektorów i zarządu, które pomoże nowe rozwiązanie wdrożyć lub przynajmniej przetestować w biznesie.
Aby zbudować efektywny zespół DS trzeba w wypracować pewną kulturę pracy z danymi, jeżeli nawet nie w całej firmie, to przynajmniej w warstwie zarządczej.

A więc jak rekrutować te jednorożce zwane DSami?

Dobrym kierunkiem jest taka organizacja biznesu, by istniało wsparcie techniczne pozwalające na efektywny dostęp do danych oraz warstwa zarządcza gotowa na wdrożenie zmian sugerowanych przez dane.
Do takiego środowiska DSy same przyjdą jak do wodopoju, bo będą czuli, że ich wysiłek na coś się przełoży. A świat się skurczył i informacja o tym gdzie dzieją się ciekawe rzeczy a gdzie nieciekawe szybko się rozchodzi.

Gdy już takie środowisko zostanie zbudowane, to nie zaszkodzi umieścić ogłoszenia na portalu http://datahero.tech/ lub przyjść czasem na uczelnie z ciekawym referatem (np. na SERy).

Z pamiętnika nauczyciela akademickiego: Kaggle in Class


W tym semestrze na przedmiocie Statystyka II wykorzystywałem Kaggle in Class. Co to jest i co z tego wyszło? O tym poniżej.

Kaggle (https://www.kaggle.com/) to platforma hostowania konkursów opartych o dane. Firma, instytucja badawcza lub inny zainteresowany ogłasza na tej platformie konkurs, polegający zazwyczaj na wykonaniu predykcji w oparciu o jakieś dane. Wykryć raka na bazie rezonansu, przewidzieć zapotrzebowanie na prąd w szkole na podstawie historii, przewidzieć zajętość łóżek szpitalnych? To typowe problemy z tej platformy. Zgłaszający określa nagrodę, termin zakończenia konkursu, kryterium oceny zgłoszeń itp. Tematy konkursów są bardzo różne, dane są różnych kształtów, struktur i wielkości.

Kaggle in Class (https://inclass.kaggle.com/) to część platformy Kaggle, przygotowana do wykorzystania w ramach zajęć. Pozwala na tworzenie własnych konkursów wykorzystując istniejącą infrastrukturę do zgłaszania rozwiązań, oceny automatycznej, dzielenia rankingów na publiczny i prywatny itp. Trzeba wskazać zbiór danych, dokładnie opisać zadanie do wykonania, określić format przesyłania odpowiedzi, dokładnie opisać kryterium oceny rozwiązania. Rejestracja nowego zadania jak i przesyłanie odpowiedzi jest bezpłatne. Kaggle in Class jest bezpłatna i dla prowadzącego i dla studentów.

Statystyka II to kurs, na którym przez pół semestru omawiamy klasyczne techniki predykcji, takie jak bagging, boosting, stacking, lasy losowe, regresja itp. Akurat do ćwiczenia algorytmów predykcyjnych Kaggle pasowało bardzo.

Kilka luźnych wrażeń dotyczących użycia tej platformy.

* Korzystanie z Kaggle pozwala studentom na uzyskanie praktycznie natychmiast oceny zgłoszonego rozwiązania. Natychmiastowy feedback to bardzo przydatna rzecz, studenci nie muszą czekać aż ja ocenię zadanie, (prawie) natychmiast widzą jakie są wyniki, przez co nie tracą ,,momentum” w pracy nad modelem.

* Korzystanie z Kaggle In Class ma tę przewagę nad zwykłymi konkursami Kaggle, że prowadzący może całkowicie dowolnie dobrać sobie problem (omawiam predykcje wieloetykietową to wstawiam dane do predykcji wieloetykietowej), dobrać termin oddania projektu, określić maksymalną liczbą zgłoszeń dziennie itp.

* Kolejną zaletą Kaggle in Class nad Kaggle jest to, że prowadzący zna dane które są modelowane, jeżeli je symulował to zna prawdziwy model, jeżeli to prawdziwe dane z którymi wcześniej pracował to też dużo o nich wie. Dzięki temu w końcowej ocenie może ocenić zarówno podejście do modelowania jak i wybrany model a nie tylko wyznaczone predykcje.

* Kaggle umożliwia ustalenie maksymalnej liczby rozwiązań zgłoszonych dziennie. Ustawienie takiego ograniczenia na dwa dziennie premiuje zespoły, które do problemu podejdą wcześnie. Zgłaszanie rozwiązania ostatniego dnia to ryzyko, że dwa oddane strzały będą daleko od dobrych predykcji. Atakując problem odpowiednio wcześniej mamy większe pole manewru.

* Przygotowanie własnego konkursu niesie ze sobą też ryzyka. Jedno jest takie, że studentom uda się wygenerować idealną predykcję. Mnie to się nawet zdarzyło. Na rzeczywistych (!!!) danych w problemie binarnej klasyfikacji udało się po kilku dniach uzyskać skuteczność 100%. Z punktu widzenia predykcji to świetnie, ale aspekt dydaktyczny leży. Mamy rozwiązanie i już nikt nie opracuje lepszego, my też nie mamy czego poprawiać. Tak więc moje doświadczenie jest takie, że lepiej zamiast rzeczywistych danych wygenerować sztuczne dane o strukturze zgodnej z rzeczywistą, ale kontrolowanym zakłóceniem (np. zachować X, ale wygenerować y na bazie jakiegoś modelu). Jak to możliwe, że ktoś otrzymał 100% skuteczności na zbiorze testowym?

* Wyznaczenie jednego konkretnego współczynnika do optymalizacji bardzo zwiększa zaangażowanie studentów w realizacje projektu. Zamienia projekt w grę na optymalizację. Niektóre zespoły zgłaszały po 20 rozwiązań próbując poprawić nawet naprawdę dobre rozwiązania. To oczywiście miecz obosieczny, ponieważ w rzeczywistości określenie miary do optymalizacji to często zadanie samo w sobie, ale z punktu widzenia zaangażowania to przydatna cecha.

* Ocena nie może być oparta całkowicie o wyniki z Kaggle (jeżeli jest dużo dobrych rozwiązań, to to które jest najlepsze, zależy czasem od przypadku) a z drugiej strony jakoś z tymi wynikami musi być związana (inaczej po co się starać). W przypadku moich zajęć wyniki z Kaggla to była 1/3 punktów z jednego projektu, wydaje mi się to dobrą proporcją.

* Teoretycznie Kaggle In Class jest bezpłatne, ale nie ma się ludzkiego supportu gdyby coś poszło nie tak. W praktyce, gdy takiej pomocy potrzebowałem (musiałem anulować rozwiązania i podmienić dane gdy okazało się że można mieć 100% skuteczność), napisałem maila i człowiek (albo naprawdę sprytne AI) szybko odpisał poprawiając to co trzeba by wszystko działało.

Najszczęśliwsze zdjęcia posłów i posłanek

Jakiś czas temu, na RBloggers pokazano jak z poziomu R używać Microsoft Cognitive Services API. Co to za API? Zbiór usług do pracy z obrazem, wideo lub tekstem. Przykładowo Ben Heubl użył Emotion API aby ocenić emocje na zdjęciach kandydatów na prezydentów USA a David Smith użył Face API aby oceniać płeć i wiek programistów na GitHub na bazie awatarów.

Super zabawka. Miałem chwilę czasu, stwierdziłem, że się nią pobawię.
Tylko skąd wziąć publicznie dostępny zbiór zdjęć?
Z pomocą przyszła strona Sejmu. Można z niej pobrać profilowe zdjęcia posłów i posłanek.

Korzystanie z Microsoft Cognitive Services okazuje się być bardzo proste, wystarczy użyć pakietu xml2 i funkcji read_html().

Emotion API dla każdej twarzy ze zdjęcia wyznacza scory dla ośmiu emocji (anger, contempt, disgust, fear, happiness, neutral, sadness, surprise). Ale dla zdjęć profilowych posłów i posłanek praktycznie jedyne niezerowe scory otrzymuje się w emocjach happiness i neutral. Okazuje się, że niektóre zdjęcia posłów i posłanek zdobywają wyższe skory w obszarze happiness a inne w neutral.
Co ciekawe posłanki mają znacznie częściej zdjęcia wysoko ocenione w skali happiness. Posłowie mają zdjęcia zeskorowane mniej więcej pół na pół jako happy i neutral.

Poniżej wyniki w rozbiciu na kluby. Proszę traktować to jako zabawkę z Cognitive Services i nie wyciągać niewiadomo jakich wniosków. Narzędzie jak narzędzie, ma jakąś niedokładność. W pionie, kluby uporządkowane ze względu na udział procentowy posłów/posłanek zescorowanych na zdjęciach jako najszczęśliwsi.

Screen Shot 2017-01-18 at 08.36.25

Co nowego w ,,Przewodnik po pakiecie R – wydanie 4.0”?

Przewodnik1234okladka
Czwarte wydanie ,,Przewodnika po pakiecie R” trafiło do księgarń w połowie grudnia. Pierwszy nakład był mały i szybko się skończył, ale od połowy stycznia Przewodnik jest ponownie dostępny.
A ja mam trochę czasu by napisać co nowego można znaleźć w czwartym wydaniu.

Zmian jest wiele. Kierunki zmian są dwa. Po pierwsze, obniżyć próg wejścia dla osób, które dopiero zaczynają przygodę z analizą danych. Łagodnym wprowadzeniem w temat są pierwsze dwa rozdziały. W upraszczaniu tej części przydały się doświadczenia z Pogromców Danych (2000+ osób) i z różnych szkoleń dla nie-programistów.
Drugi kierunek zmian to szersze wprowadzenie do pakietów z grupy tidyverse oraz ułatwień, które oferuje RStudio. Weterani R mają różne ulubione edytory i rozwiązania codziennych problemów, ale dla osób rozpoczynających przygodę z pewnością najefektywniejszą drogą wejścia jest połączenie RStudio i pakietów z tidyverse. Również osoby pracujące z R od lat mogą z zaskoczeniem odkryć, że praca z datami jest bardzo prosta dzięki pakietowi lubridate (ok, lubridate ma już kilka lat na karku) lub że praca z czynnikami jest prosta dzięki pakietowi forcats.

Wzorem poprzednich wydań, pierwsze 3 rozdziały (150 stron) są dostępne bezpłatnie jako pdf online tutaj.

Rozdział 1 – Wprowadzenie
W pierwszym rozdziale znajduje się krótki opis narzędzia jakim jest język R i edytor RStudio.
Zaczynam od pytania ,,Dlaczego warto poznać R?”,
Czytelnik może zapoznać się z przykładowymi fragmentami kodu R do pobierania danych z internetu (z nadzieją na reakcję czytelnika ,,WoW, to się da zrobić w 5 linijkach! Ja też tak chcę!!!”), wizualizacji pobranych danych oraz prostego modelowania statystycznego. Wszystko w zaledwie kilku linijkach kodu, możliwe dzięki dużej ekspresji języka.
Jeżeli ktoś jeszcze nie wie, czy praca z R jest dla niego, ten rozdział pomoże podjąć decyzję.
Jest tutaj też krótka historia rozwoju R, od początków S po lawinowy rozwój R w ostatnich latach/miesiącach.

Czytaj dalej Co nowego w ,,Przewodnik po pakiecie R – wydanie 4.0”?