Rozstrzygnięcie konkursu Data Science Masters na najlepszą pracę z DS i ML

Screen Shot 2018-03-14 at 9.20.11 AM
Dzisiaj dzień liczby Pi. Dobry dzień na rozstrzygnięcie PIerwszej edycji konkursu Data Science Masters na najlepsza pracę magisterską.

Ze zgłoszonych 72 prac trzeba było wybrać 3, które otrzymają nagrodę. Tematyka tych prac była bardzo różna (chmura słów po prawej została wygenerowana z tytułów i abstraktów). Prace zgłaszane były z całej Polski (statystyki dotyczące uczelni są poniżej). Na gali będzie można zapoznać się z procedurą konkursową oraz z nagrodzonymi pracami. Autorzy nagrodzonych prac zostali poproszeni o kilkunasto-minutowe prezentacje.

W imieniu komisji oraz organizatorów (MiNI PW i Nethone) serdecznie zapraszam dzisiaj do sali 107 na godzinę 16:15. Po gali, przy poczęstunku, będzie można porozmawiać z nagrodzonymi. Więcej informacji tutaj.

How fractals helped my students to master package development in R

Last semester I taught an R programming at MIMUW. My lectures are project oriented, the second project was related to package development. The idea was straightforward: each team of students shall create a package that produces IFS fractals (based on iterated function systems). Each package shall have two generic functions: create() and plot(), documentation and vignette. Fractals shall be implemented with the use of S3 or S4 classes.

I have students with different backgrounds. Mostly statistics, but some are from physics, psychology or biology. I was a bit unsure how they will deal with concepts like iterated contractions.
After all results exceeded my expectations.

Guess what is happening with students engagement when their packages start producing nice plots. Their need/hunger for more leads to beautiful things.

This team got interested in nonlinear transformations. They manage to create Apollonian Gasket generator and much more. See their vignette and package here.

Screen Shot 2018-03-09 at 7.31.24 PM

This team got interested in probabilistic mixtures of two fractals. They developed a Shiny app that mixes two sets of contractions with given mixture proportions. Here is a mixture of Sierpinski gasket and a tree. Find out their vignette here.

Screen Shot 2018-03-09 at 7.29.58 PM

This team got interested in random fractals. They developed fractal generator that draws parameters of each contraction. In result they get beautiful random shapes like these. Here is their vignette.

Screen Shot 2018-03-09 at 7.37.42 PMScreen Shot 2018-03-09 at 7.37.31 PMScreen Shot 2018-03-09 at 7.37.26 PM

And these two teams got interested in different ways of fractal colouring. Vignettes of Team 1 and Team 2

Screen Shot 2018-03-09 at 7.40.15 PMScreen Shot 2018-03-09 at 7.36.01 PMScreen Shot 2018-03-09 at 7.31.05 PM

After all it turns out that fractals are very addictive!
Use it with care 😉

BetaBit: Tato, kiedy ty mi to wreszcie wytłumaczysz….

Konigsberg_riverCzasem, gdy rozmawiam o edukacji matematycznej dla dzieci, temat schodzi na zagadnienia typu: w jakie słodkie opakowanie ubrać tę gorzką pigułkę wiedzy, aby dziecko chciało ją połknąć. Że to niby tyle różnych cukierków dookoła, tu gra, tam facebook, trzeba z takimi gigantami rywalizować o uwagę dziecka.

Ale czy tak faktycznie jest? Mój syn mnie kiedyś zabił pytaniem ,,Tato, kiedy ty mi wreszcie wytłumaczysz co to jest DNA”? Zacząłem się zastanawiać, jak wyglądałaby interakcja pomiędzy uczniem a nauczycielem, gdyby uczeń robił co tylko może by wyciągnąć od nauczyciela wiedzę, a nauczyciel co tylko może by żadnej wiedzy nie przekazać. Do jakich pytań posunąłby się uczeń aby wyrwać nauczycielowi skrawki tajemnicy?

Skracając te przemyślenia i przechodząc do pointy.
Napisałem krótkie opowiadanko o takim chłopcu co bardzo chciał wiedzieć jak rozwiązać zagadkę z mostami w Królewcu.
Znajdziecie je tutaj.

DALEX: how would you explain this prediction?

Last week I wrote about single variable explainers implemented in the DALEX package. They are useful to plot relation between a model output and a single variable.

But sometimes we are more focused on a single model prediction. If our model predicts possible drug response for a patient, we really need to know which factors drive the model prediction for a particular patient. For linear models it is relatively easy as the structure of the model is additive. In 2017 we have developed breakDown package for lm/glm models.

But how to explain/decompose/approximate predictions for any black box model?
There are several approaches. The (probably) most known is LIME with great examples for image and text data. There is an R port lime developed by Thomas Pedersen. In collaboration with Mateusz Staniak we developed live package, similar approach, easy to use with models created by mlr package.
The other technique that can be used here are Shapley values which use attribution theory/game theory to attribute effects of different variables for a single prediction.

Recently we have developed a yet another approach (paper under preparation, implemented in the breakDown version 0.4) that works in a model agnostic way (here you can check how to use it for caret models). You can play with it via the single_prediction() function in the DALEX package.
Such decomposition is useful for many reasons mentioned in papers listed above (deeper understanding, validation, trust, etc).
And, what is really extra about the DALEX package, you can compare contributions of different models on the same scale.

Let’s train three models (glm / gradient boosting model and random forest model) to predict quality of wine. These models are very different in structure. In the figure below, for a single wine, we compare predictions calculated by these models. For this single wine, for all models the most influential variable is the alcohol concentration as the wine has much higher concentration than average. Then pH and sulphates take second and third positions in all three models. Looks like models have some agreement even if they structure is very different.

plot.single_prediction_explainer-19

If you want to learn more about DALEX package and decompositions for model predictions please consult following cheatsheet or the DALEX website.

If you want to learn more about explainers in general, join our DALEX Invasion!
Find our DALEX workshops at SER (Warsaw, April 2018), ERUM (Budapest, May 2018), WhyR (Wroclaw, June 2018) or UseR (Brisbane, July 2018).

DALEX_single_prediction

Czy transakcyjne podejście do ucznia jest dobre w Data Science?

singapore-13546711157mA

Sporo czasu spędziłem ostatnio w National Institute of Education (NIE) in Singapore gdzie kształci się nauczycieli na każdym poziomie nauczania. Gdy patrzeć na wyniki Singapuru przez pryzmat badania PISA, to trudno uwierzyć, że żyją tu ludzie a nie roboty. Wyniki badania z 2015 roku plasują Singapur na 1 miejscu w praktycznie każdym kryterium (czytanie, matematyka, przyroda) i to z taką przewagą, że od drugiego miejsca dzieli ich przepaść.

Poruszając się po tym mieście-państwie widać w każdym miejscu olbrzymi nacisk położony na edukację, od ogrodu botanicznego (z masą edukacyjnych elementów), przez telewizję (z długimi programami na tematy naukowe i ekonomiczne) po metro.
Singapur ma też bardzo wysoki współczynniki nierówności Giniego, łatwo wyobrazić sobie prosty mechanizm w którym nacisk na edukacje wynika z chęci pozyskania lepszej pracy, wyższych zarobków itp.

W rozmowach z ludźmi z NIE ciekawiło mnie w jaki sposób teraz starają się kształtować zasady nauczania, co traktują za największe wyzwanie.
I tutaj ciekawa historia. Część z nich narzeka na bardzo transakcyjne podejście uczniów do edukacji. Podejście w którym za określony wysiłek czeka określona nagroda. Ale nie ma czasu na zwykłą ciekawość, zerkanie w bok, schodzenie ze szlaku. W artykułach o wysokich wynikach z PISA pojawia się pytanie: a gdzie innowacje?

Jak ta historia ma się do tytułowego kształcenia w Data Science? Hype wokół Data Science spowodował, że wiele osób traktuje ten zawód jako prosty sposób znaczącego podbicia sobie pensji po opanowaniu kilku konkretnych technik. Skupiając się na słówku Data zamiast na Science.

Tymczasem w dużej części do innowacji prowadzą nowe, pomysłowe zastosowania danych, a nie bezmyślne stosowania maszynek do młócenia danych. Aby znaleźć pomysłowe zastosowanie trzeba myśleć kreatywnie, ryzykować, schodzić ze szlaku. Próbować, upadać i próbować dalej aż się uda.

Hipoteza: programy studiów nie są na to gotowe. Często zaliczanie oparte jest o punkty, które można uzyskać za różne, niewielkie, bezpieczne zadania. Im bardziej pynkty są za bardzo konkretną aktywność, tym bardziej mamy transakcyjne/zamknięte podejście do nauczania.
Zamiast szukać smakołyków w danych, studenci mogą czuć pokusę by szukać punktów potrzebny do zaliczenia.
Nie jest to zreszta wina studentów, ponieważ zazwyczaj programy nauczania i kryteria określają nauczyciele akademiccy. Punkty wydają się być sprawiedliwym rozwiązaniem.
Moim zdaniem takie podejście jest jednak szkodliwe w tej mistycznej dyscyplinie jaką jest Data Science.
Jak nie transakcje to transformacje. Przedmiot (taki jak warsztaty badawcze) powinien zmieniać uczestnika (a uczestnikiem przedmiotu jest i uczeń i nauczyciel), wystawiać go poza strefę komfortu, generować nowe doświadczenia i rozwijać ciekawość do eksperymentowania.

DALEX: understand a black box model – conditional responses for a single variable

Black-box models, like random forest model or gradient boosting model, are commonly used in predictive modelling due to their elasticity and high accuracy. The problem is, that it is hard to understand how a single variable affects model predictions.

As a remedy one can use excellent tools like pdp package (Brandon Greenwell, pdp: An R Package for Constructing Partial Dependence Plots, The R Journal 9(2017)) or ALEPlot package (Apley, Dan. Visualizing the Effects of Predictor Variables in Black Box Supervised Learning Models (2016)).
OR
Now one can use the DALEX package to not only plot a conditional model response but also superimpose responses from different models to better understand differences between models.

Screen Shot 2018-02-19 at 12.27.58 AM

Consult the following vignette to learn more about the DALEX package and explainers for a single variable.

DALEX_single_variable

OR
if you want to learn more about explainers, join our DALEX Invasion!
Find our DALEX workshops at SER (Warsaw, April 2018), ERUM (Budapest, May 2018), WhyR (Wroclaw, June 2018) or UseR (Brisbane, July 2018).

0 -> 1

MTH
Rysunek po prawej stronie to zdjęcie okładki książki Scotta Berkuna. Ładnie oddaje urok chwili, w której rodzą się nowe pomysły.
Scott pisze wiele na temat zarządzania projektami innowacyjnymi i na temat samej innowacyjności. Warto poczytać i posłuchać.

Przypomniała mi się ta książka i ten obrazek gdy oglądałem trzeci projekt studentów z Technik Wizualizacji Danych [MiNI PW] i Programowanie i Wizualizacja w R [MIM UW].
To dwa różne kursy, ale zrobiłem im wspólny trzeci projekt i wspólną prezentację – wynikowe plakaty wiszą na 2. piętrze wydziału MiNI.
Zadanie było sformułowane mgliście i ogólne: przygotuj plakat formatu A2 pokazujące wybrany temat dotyczący Polski lub Europy. Możesz użyć ggplot2.
Zostało sporo miejsca dla autorów na sprecyzowanie pomysłu i formy prezentacji.
Co z tego wyszło? Poniżej część zgłoszonych plakatów.

Jeżeli któryś przypadnie Ci drogi czytelniku do gustu, to do końca tygodnia możesz na niego zagłosować. Wystarczy, że zeskanujesz telefonem kod QR umieszony w prawym górnym rogu (część punktów z projektu studenci otrzymują za otrzymane głosy, jedno urządzenie liczy się jako jeden głos).
Ciekaw jestem na ile preferencje szerszej grupy odbiorców będą się zgadzać z moimi.

Tematy większości plakatów są bardzo ciekawe, wykonanie bardzo dobre. Kliknij by powiększyć.

p3v01ppvp3v14p3v13p3v12p3v11p3v10p3v09p3v08p3v07p3v06p3v05p3v04p3v03p3v02p3v15p3v16v13

Top interactive visualizations of movie scripts

One of the highest pleasures for an academic teacher is to be surprised by an extraordinary student’s project or homework. Something that greatly exceeds expectations. I’ve reoriented my courses in a way to make such surprises frequent.
The second project in my Data Visualisation classes was related to interactive graphics. The task was to create an interactive graphics/app/tool that summarizes scripts from a selected movie or series.

Here are the top 6 visualizations created by my students. Mostly with R.

Harry Potter

Which duelling spells were cast most often in which book from the Harry Potter series?
Find out here.

HarryPotter

Avengers

Which emotions are the most common for your favorite Avenger?
Find out here.

Avengers

Games of Thrones

Which Starks are mentioned frequently in Season 6?
Find out here.

GameOfThrones

The Lion King

What Simba felt during The Lion King?
Find out here.

LionKing

Pulp Fiction

What is the f**k factor for different characters in the Pulp Fiction?
Find out here.

pulpFiction

Léon The Professional

Which character is the most angry in the Léon The Professional?
Find out here.

Leon

Data Science Masters

Jeszcze przez 11 dni można zgłaszać prace magisterskie w konkursie Data Science Masters – konkursie na najlepszą pracę z obszaru Analizy Danych i Uczenia Maszyn.

Mamy już 24 zgłoszenia!
Gdzie wykuwano zgłoszone w konkursie prace?

Screen Shot 2018-01-09 at 19.10.16

Miałem okazję przejrzeć kilka ze zgłoszonych prac. Są bardzo ciekawe i bardzo zróżnicowane. Od zastosowań głębokich sieci neuronowych, przez analizę matematyczną właściwości testów statystycznych po modele ekonometryczne.

Czekamy na kolejne zgłoszenia!
Formularz na stronie https://www.datasciencemasters.edu.pl/.

Konkurs jest organizowany przez wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej oraz firmę Nethone z grupy DaftCode.

Fighting Against Fake Data and Visualizations

Pięć dni temu rozpoczęliśmy konkurs na Najgorszy wykres roku 2017. Do chwili obecnej w głosowaniu oddano 804 głosy co świadczy o rosnącej popularności i zasięgu tego konkursu.
Poniżej napiszę kto wygrał, dlaczego to ważne i jak nie zostać laureatem w kolejnej edycji.

Najgorsze wykresy 2018

Najwięcej głosów (429 głosów, 53% głosujących) zdobył poniższy wykres z portalu oko.press. Zbyt dużo kategorii, pionowe słupki spowodowały, że trudno z niego odczytać jakiekolwiek liczby.

Drugie miejsce (328 głosów, 41%) zajął mój faworyt z serwisu Bankier. Dziwaczna oś OX (na początku prezentująca dane co 10 lat a później co 1 rok), zaskakujące górki i dołki, brak odniesień do demografii (liczba zawartych małżeństw pewnie jakoś zależy od struktury demograficznej w danym roku), złożyły się na ten zapadający w pamięć wykres.

Na trzecie miejsce wystarczyło 151 głosów (19% głosujących), a zdobył je wykres kołowy z portalu wroclaw.pl.

Dlaczego szukanie dziury w całym jest takie ważne?

Każdy ze zgłoszonych wykresów, nawet te zwycięskie, można bronić używając rozmaitych argumentów. Najczęstsze to:

* Co z tego, że wykres jest nieczytelny, skoro pokazane są liczby.
[W takim razie po co pokazywać wykres? Lepsza byłaby tabela.]
* Wykres nie jest zły, bo gdyby pokazać dane poprawnie to nie byłoby widać żadnych różnic.
[A może nie ma istotnych różnic? Po co wprowadzać w błąd co do wielkości różnic?]
* Może i wykres pokazuje coś innego niż sugeruje tytuł, ale przecież jakieś informacje jednak pokazuje.
[A nie lepiej pokazać jednak informacje zgodne z tytułem?]
* Wykres to tylko poglądowa ilustracja, słowny opis w artykule jest poprawny.
[Nie lepsze byłoby jakieś ładne poglądowe zdjęcie z imageshack? Po co mydlić czytelnikowi oczy sugerując, że wykres pokazuje jakieś dane?]

Argumenty obrony mógłbym zrozumieć, gdyby dotyczyły grafik znalezionych na portalu z głupotkami. Ale na portalach informacyjnych (czy pretendujących do tego tytułu) nie ma miejsca na takie błędy.

I nie jest to opinia wyłącznie statystyka, ale też opinia poważnych dziennikarzy, np. takich jak Alberto Cairo.
Poniżej umieszczam nagranie z ubiegłorocznego odczytu Alberto Cairo nt. Visual Trumpery: Fighting Against Fake Data and Visualizations — From the Left and From the Right.
Bardzo polecam, świetne wystąpienie, wiele ciekawych argumentów i przykładów.

Jak żyć?

Tytuł tego wpisu zapożyczyłem z ww. prezentacji Alberto Cairo. Celem konkursu nie jest naśmiewanie się z konkretnych portali czy autorów konkretnych grafik, ale zasygnalizowanie problemu jakim jest nieumiejętna/wprowadzająca w błąd prezentacja danych w popularnych mediach.

Problem nie jest znany od wczoraj. Jest wiele źródeł pokazujących jakich błędów należy unikać lub przedstawiających wizualizacje danych bogate w treść.

* W języku polskim najłatwiej mi polecić własną książkę ,,Zbiór esejów o sztuce prezentowania danych”. Jest to zbiór 8 krótkich esejów nt. różnych aspektów graficznej prezentacji danych. Dostępny w formie papierowej z wieloma kolorowymi ilustracjami jak i bezpłatnie dostępny w postaci elektronicznej na tej stronie.
* W języku angielskim klasyką gatunku są książki Edwarda Tuftego. Lista książek i wiele interesujących materiałów można znaleźć na jego stronie https://www.edwardtufte.com/tufte/
* Wspomniany wyżej Alberto Cairo jest autorem dwóch książek o wizualizacji danych oraz kursu online na ten temat. Więcej informacji na jego stronie internetowej http://albertocairo.com/
* Jest bardzo wiele świetnych blogów o wizualizacji danych. Ja najbardziej lubię śledzić Flowing Data (prowadzony przez Nathana Yau, autora kilku książek), Information is Beautiful (prowadzony przez Davida McCandlessa, autora Information is Beautiful i Knowledge is Beautiful) oraz Junk Charts (prowadzony przez Kaisera Fung, również autora kilku książek).

Materiałów zwiększających umiejętności krytycznego i wizualnego myślenia o danych jest znacznie więcej. Pracujemy właśnie nad świetną pozycją o roboczej nazwie ,,Wykresy unplugged”. Więcej informacji o tej pozycji już wkrótce.

Udanego 2018!