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!

Najgorszy wykres 2017 roku

Zbliża się Sylwester, czas więc wybrać najgorszą prezentację danych opublikowaną w roku 2017.
Konkurs na najgorszą wizualizację przeprowadzamy co roku od 2012 (edycja 2016, edycja 2015, edycja 2014, edycja 2013, edycja 2012). W tym roku było wiele ciekawych zgłoszeń przesłanych przez facebook, emailem, od studentów przedmiotu Techniki Wizualizacji Danych. Ze zgłoszeń wybrałem 10 niezwykłych wykresów, mogących moim zdaniem śmiało rywalizować o tytuł najgorszego wykresu ever.

Zasada plebiscytu jest prosta. Do końca roku można wskazywać swoje typy na najgorszy wykres, głosując za pomocą ankiety umieszczonej na końcu tego wpisu (w jednym dniu można głosować tylko raz. Jednocześnie można wskazać do 5 kandydatów). Po nowym roku zobaczymy, który wykres otrzymał najwięcej głosów. To on otrzyma tytuł „Zniekształcenie roku 2017”. Aby ułatwić głosowanie, każdy kandydat ma skrótową wpadającą w ucho nazwę.

1. Detale są bez znaczenia

Ten wykres pochodzi z tvn24. Za pomocą słupków przedstawiono nakłady na zdrowie jako % PKB. Co jednak ciekawe, długość słupków wcale nie jest proporcjonalna do prezentowanych liczb. Słupki systematycznie sobie rosną zaznaczając wyłącznie kolejność. Wartość zakodowana przez pierwszy słupek różni się od wartości zakodowanej przez czwarty tylko o 1,2 pp. Różnica pomiędzy dwoma ostatnimi to 1,5 pp. Długość słupków tylko wprowadza w błąd. Wartości liczbowe zostały zignorowane – jak widać to tylko detale.

Screen Shot 2017-10-24 at 21.55.04

2. 12%

Ten wykres pochodzi z benchmarku nvidia. Wygląda na to, że wzrost wydajności jest naprawdę duży (pierwszy słupek jest 3x mniejszy od ostatniego), przynajmniej dopóki nie spojrzy się na oś. Więcej podobnych ciekawych zniekształceń jest opisanych tutaj.

nvidia

3. Gdzie jest Wally?

Mapki (czyli kartogramy) są wspaniałe, wyglądają elegancko, często są kolorowe i jeszcze powodują przyjemne uczucie zrozumienia, przecież ‚łał widziałem gdzieś ten kształt – to chyba kontury Polski’.
Do pewnych analiz kartogramy się jednak zupełnie nie nadają, a jedną z nich jest porównywanie dwóch kartogramów.
Np. jak znaleźć istotne różnice na poniższych kartogramach?
Przykład pochodzi z biqdata.

Screen Shot 2017-10-23 at 15.47.11

4. Będzie lepiej!

Wykresy słupkowe to jedna z najprostszych w użyciu technik prezentacji danych. Trudno zrobić je źle, a jednak, poniższy wykres pokazuje, że się da. Prezentuje dane z lat 2016/2017 oraz prognozy. A prognozy nie dość, że są optymistyczne, to jeszcze narysowane w taki sposób…
Źródło

Screen Shot 2017-01-25 at 15.17.38

5. Jak tankować, to tylko na Śląsku

Za Forbes podajemy wykres ze średnimi cenami benzyny w różnych województwach. Gdzieś musi być drożej, a gdzieś musi być taniej, ale czy z poniższego wykresu łatwo odczytać, że maksymalna różnica cen pomiędzy województwami to 5%?

tabelka-ceny-paliw

6. Nie interesuję się

Poniższy wykres pochodzi z portalu oko.press i prezentuje odpowiedzi na pytanie które wydarzenia można uznać za najważniejsze w 2016 roku.
Jeden z nielicznych przypadków w których legenda jest 3 razy większa niż wykres, sam wykres całkowicie nieczytelny, właściwie jedyne co można odczytać to, że na pytanie ,,Które wydarzenie było najważniejsze” w poprzednim roku najczęstsza odpowiedź to ,,Nie wiem, nie interesuję się, nie zastanawiałem się”.

screen-shot-2016-12-31-at-10-12-02

7. Walec

Jak przedstawić cztery liczby by wyglądały poważnie? Dodajmy dwie kategorie, masę cyfr najlepiej nic nie wnoszących i koniecznie pokażmy dane w 3D. Gdy jeszcze zastosujemy różne agregacje dla różnych słupków oraz dwie kategorie, wtedy będziemy mogli być pewni, że z wykresu niewiele da się odczytać.

Żródło wyjaśnia związek tego wykresu ze smogiem w Wadowicach.

Screen Shot 2017-10-24 at 22.04.01

8. Ślub tylko w miesiącu z r i roku z 0

W serwisie Bankier znaleźć można taki zaskakujący wykres przedstawiający liczbę małżeństw.
Z jakichś niezwykłych powodów autor wykresu zdecydował się pomiędzy pomiarami dodać dołki aby wykres był ciekawszy.

Screen Shot 2017-02-14 at 16.38.49

9. Wrocław na tle innych miast

Na portalu wroclaw.pl znaleźć można porównanie finansów Wrocławia z pięcioma innymi dużymi miastami. Dane ciekawe, ale sposób prezentacji dziwaczny (w raporcie jest więcej takich kwiatków). Np. co można odczytać z poniższej szarlotki (podpowiedź, segmenty szarlotki NIE są posortowane po wielkości)?

Screen Shot 2017-12-28 at 01.03.31

10. Będzie impreza

Na portalu biznes.onet umieszczono portret zamożnego Polaka. Poniższy wykres pokazuje rozkład wielkości miesięcznych oszczędności. Nie przypuszczałem, że to powiem, ale: te dane znacznie lepiej byłoby pokazać na wykresie kołowym. A tutaj, skąd te kolory, skąd te wielkości?

kola

Który wykres zasługuje na tytuł ,,Zniekształcenie roku 2017''?

View Results

Loading ... Loading ...

chRistmas tRees

Year over year, in the last classes before Christmas I ask my students to create a Christmas tree in R.
Classes are about Techniques of data visualisation and usually, at this point, we are discussing interactive graphics and tools like rbokeh, ggiraph, vegalite, googleVis, D3, rCharts or plotly. I like this exercise because with most tools it is easy to create a barchart, but how good must be the tool and the craftsman to handle a christmas tree?

Here is what they did this year (having around 1 hour to finish the task). Knitr scripts.

Update: I am still getting new submissions, feel free to submit yours as well.

Screen Shot 2017-12-22 at 13.07.26Screen Shot 2017-12-22 at 13.04.49

Screen Shot 2017-12-21 at 23.10.40Screen Shot 2017-12-21 at 23.10.23

Screen Shot 2017-12-21 at 22.06.35Screen Shot 2017-12-21 at 22.00.11

Screen Shot 2017-12-21 at 23.11.45Screen Shot 2017-12-21 at 23.11.19

Screen Shot 2017-12-21 at 21.57.54Screen Shot 2017-12-22 at 13.07.54

Screen Shot 2017-12-22 at 23.09.48Screen Shot 2017-12-22 at 23.09.25

Screen Shot 2018-01-09 at 22.37.20Screen Shot 2018-01-09 at 22.20.51

Screen Shot 2018-01-09 at 22.13.01Screen Shot 2018-01-09 at 21.57.06

Screen Shot 2018-01-09 at 21.47.06Screen Shot 2018-01-09 at 21.43.25

Screen Shot 2018-01-09 at 21.39.49Screen Shot 2018-01-09 at 21.22.31

Screen Shot 2017-12-21 at 23.10.48

Czekamy na zgłoszenia do tegorocznej edycji ,,Najgorszego wykresu roku”

Na koniec roku przygotowujemy szóstą (!!!) edycję konkursu na najgorszy wykres roku.
Jeżeli widzieliście w mediach papierowych lub elektronicznych wykresy zniekształcające dane, powodujące, że prosta informacja staje się całkowicie nieczytelna, zgłoście ją do konkursu!
Wykres/wizualizacja powinna być opublikowana w 2017 roku.
Zgłoszenia można przesyłać w komentarzach lub na adres email: przemyslawbiecek na serwerze gmail.com.

Jakie wykresy stawały w szranki w poprzednich latach?

archivist: Boost the reproducibility of your research

A few days ago Journal of Statistical Software has published our article (in collaboration with Marcin Kosiński) archivist: An R Package for Managing, Recording and Restoring Data Analysis Results.

Why should you care? Let’s see.

Starter

a
Would you want to retrieve a ggplot2 object with the plot on the right?
Just call the following line in your R console.

archivist::aread('pbiecek/Eseje/arepo/65e430c4180e97a704249a56be4a7b88')

Want to check versions of packages loaded when the plot was created?
Just call

archivist::asession('pbiecek/Eseje/arepo/65e430c4180e97a704249a56be4a7b88')

Wishful Thinking?

When people talk about reproducibility, usually they focus on tools like packrat, MRAN, docker or RSuite. These are great tools, that help to manage the execution environment in which analyses are performed. The common belief is that if one is able to replicate the execution environment then the same R source code will produce same results.

And it’s true in most cases, maybe even more than 99% of cases. Except that there are things in the environment that are hard to control or easy to miss. Things like external system libraries or dedicated hardware or user input. No matter what you will copy, you will never know if it was enough to recreate exactly same results in the future. So you can hope that results will be replicated, but do not bet too high.
Even if some result will pop up eventually, how can you check if it’s the same result as previously?

Literate programming is not enough

There are other great tools like knitr, Sweave, Jupiter or others. The advantage of them is that results are rendered as tables or plots in your report. This gives you chance to verify if results obtained now and some time ago are identical.
But what about more complicated results like a random forest with 100k trees created with 100k variables or some deep neural network. It will be hard to verify by eye that results are identical.

So, what can I do?

The safest solution would be to store copies of every object, ever created during the data analysis. All forks, wrong paths, everything. Along with detailed information which functions with what parameters were used to generate each result. Something like the ultimate TimeMachine or GitHub for R objects.

With such detailed information, every analysis would be auditable and replicable.
Right now the full tracking of all created objects is not possible without deep changes in the R interpreter.
The archivist is the light-weight version of such solution.

What can you do with archivist?

Use the saveToRepo() function to store selected R objects in the archivist repository.
Use the addHooksToPrint() function to automatically keep copies of every plot or model or data created with knitr report.
Use the aread() function to share your results with others or with future you. It’s the easiest way to access objects created by a remote shiny application.
Use the asearch() function to browse objects that fit specified search criteria, like class, date of creation, used variables etc.
Use asession() to access session info with detailed information about versions of packages available during the object creation.
Use ahistory() to trace how given object was created.

Lots of function, do you have a cheatsheet?

Yes! It’s here.
If it’s not enough, find more details in the JSS article.

Data Science Masters – najlepsze prace magisterskie z Data Science i Uczenia Maszynowego

DataScienceMasters_Mail_Banner 27.11

Do 20 stycznia 2018 można zgłaszać prace do konkursu Data Science Masters.
Zgłaszać można prace magisterskie obronione na dowolnej polskiej uczelni w latach 2016 lub 2017.

Data Science i Uczenie Maszynowe to dwie bardzo szerokie dziedziny. Aby je objąć w Jury znajdują się matematycy i informatycy z czterech różnych uczelni z szeroką gamą zainteresowań, od bioinformatyki, ekonometrii po Big Data czy analizę obrazów.

Łączna pula nagród to 8 500 zł, a prezentacja zwycięskiej pracy jest zaplanowana na dzień liczby Pi, czyli 14 marca.

Celem konkursu jest pokazanie jak ciekawe problemy rozwiązywane są w ramach prac magisterskich w Polsce. Mamy nadzieję, że będą one inspirowały przyszłe tematy prac.

Więcej informacji: https://www.datasciencemasters.edu.pl/

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.