dime: Deep Interactive Model Explanations

Hubert Baniecki created an awesome package dime for serverless HTML interactive model exploration. The experimental version is at Github, here is the pkgdown website. It is a part of the DrWhy.AI project.

How does it work?

With the DALEX package you can create local and global model explanations for machine learning models. Each explanation can be visualized with a genetic plot() function.
Hubert created a generic plotD3() function which turns each explanation into an interactive D3 plot (with the help of r2d3 package). With the dime package you can combine few interactive explanations into a single dashboard. And the dashboard is serverless, you can host it at github or anywhere.

For example, the gif below shows how to combine a break down plot (local feature attribution) with ceteris paribus profiles (detailed analysis of a single variable). You can click a variable of interest to activate an appropriate ceteris paribus profile (click to play).

With the dime package you can combine any number of interactive widgets into a single dashboard. You can connect local, global explanations or EDA tools like histograms or barplots.

It’s very easy to generate such website. Just create an explainer and call the modelStudio() function.

Find examples and R codes here: https://github.com/ModelOriented/dime/blob/master/README.md

The dime package is still in the experimental phase. Your feedback is welcomed. Feel free to submit an issue with comments or ideas.

Metawstęp do wizualizacji danych w D3.js…

Dziś mamy przyjemność zaprezentować gościnny wpis Piotra Migdała. Wpis zawierać będzie zbiór 45 linków dotyczących biblioteki D3 i jej zastosowań. Biblioteka D3 to świetne narzędzie dla interaktywnych wykresów, ale można też użyć tej biblioteki do statycznych rysunków. Osobiście nie jestem fanem Java Scriptu, ale na razie nie widać silnej konkurencji o podobnych możliwościach (no może Processing…). Więc jeżeli myślimy o prezentacji danych w przeglądarce to warto poznać D3.

Metawstęp do wizualizacji danych w D3.js…

Piotr Migdał

D3.js (Data-Driven Documents) to biblioteka w języku JavaScript do wizualizacji danych. Zamiast dawać gotowce (czyli konkretne wykresy) pozwala łatwo manipulować podstawowymi elementami graficznymi i łączyć elementy HTMLa z danymi. Tym samym to raczej nie tyle gotowa wizualizacja, co narzędzie do tworzenia takowych.

(TagOverflow dla strony Stack Overflow i pytań powiązanych z tagiem [data-visualization]. Wielkość wierzchołka mówi o liczbie pytań, szerokość krawędzi – liczbie pytań mających oba tagi naraz, zaś odcień – o tym jak mocną są skorelowane.)

Czytaj dalej Metawstęp do wizualizacji danych w D3.js…

Kategoryzacja jednostek naukowych

Ten wpis dotyczy wyłącznie nauk ścisłych, osoby zainteresowane też naukami przyrodniczymi czy humanistycznymi zapraszam do zapoznania się z tym wpisem.

Kilka dni temu, pod hasłem ,,Wizytówki polskiej nauki” ministerstwo opublikowało ocenę parametryczną jednostek naukowych. Każda z jednostek trafiła do jednej z czterech kategorii A+ (czyli elita, cytując ministerstwo), A, B i C (czyli ,,silne ostrzeżenie”). Od kategorii zależy wysokość dofinansowania ze strony ministerstwa, które otrzyma jednostka.

Na zaklasyfikowanie jednostki do kategorii wpływ miały cztery kryteria:
** Kryterium I – Osiągnięcia naukowe i twórcze
** Kryterium II – Potencjał naukowy
** Kryterium III – Materialne efekty działalności naukowej
** Kryterium IV – Pozostałe efekty działalności naukowej

Z plików pdf opublikowanych przez ministerstwo (dobrze, że nie zdjęcia wydrukowanych kartek, też cyfrowy format) udało się wyciągnąć dane. Poniżej przedstawię graficznie dane dla kategorii ,,Nauki ścisłe i inżynierskie”. Kody, wykresy i pliki źródłowe użyte do wykonania tych wizualizacji dostępne są tutaj, więc jeżeli kogoś interesują inne kategorie i lubi wyciągać dane z pdfów, zapraszam.

Zanim pokażemy surowe dane, przedstawimy problem odwrotny.

Podczas oceny jednostek na podstawie ocen cząstkowych przypisywano jednostki do czterech kategorii. Problemem odwrotnym będzie użycie algorytmu klasyfikacji (tutaj drzew klasyfikacyjnych) aby zobaczyć, które czynniki były decydujące w ,,przypisaniu” jednostki do określonej kategorii.

Poniższe drzewo decyzyjne (celowo obcięte do trzech poziomów) pokazuje czym charakteryzują się jednostki wysoko i nisko oceniane.

Czytaj dalej Kategoryzacja jednostek naukowych

Sondaże poparcia partii według SMG/KRC, trendy a szumy w badaniu poparcia a biblioteka D3 javascript

Programy informacyjne są czasami zakłócane komentarzami sondaży poparcia partii politycznych. Zdarza się, że panel osób próbuje wytłumaczyć nowe wyniki sondaży pokazujące zmianę o 2% poparcia dla jakiejś partii. Co więcej, w tłumaczeniach osoby komentujące wydają się wierzyć, że to możliwe by w ciągu tygodnia 400 000 osób zaczęło/przestało popierać partię X.

Zastanówmy się jaki jest błąd pomiaru poparcia w przeciętnym sondażu. Wiele sondaży przeprowadzanych jest na próbach około 1000 osobowych, z tej próby zazwyczaj mniej niż połowa deklaruje chęć głosowania w wyborach. Upraszczając sytuację, zakładając, że poparcie dla partii X można modelować próbą losową z rozkładu dwumianowego o nieznanym parametrze p, dokładność pomiaru poparcia jest czasem rzędu +-5%. Jak szeroki jest dokładnie przedział ufności dla oceny poparcia partii X zależy od wielu czynników, zazwyczaj jednak jest znacznie szerszy niż te 2%, które budzą dyskusje w mediach.

Nate Silver pokazał, że odpowiednio agregując wyniki rożnych sondaży można wyznaczyć znacznie dokładniejsze szacunki niż każdy z sondaży pokazuje osobno.
A ja dzisiaj chciałbym pokazać, że odpowiednio uśredniając wyniki poparcia w czasie można lepiej zobaczyć i globalny trend i lokalną zmienność wyników sondaży.

Czytaj dalej Sondaże poparcia partii według SMG/KRC, trendy a szumy w badaniu poparcia a biblioteka D3 javascript

Młodzi XXL a interaktywna grafika z R i biblioteką D3 javascript

We wtorek Magda Małczyńska-Umeda, pokazała swoją wersję infografiki o nadwadze w różnych grupach wiekowych w Polsce.
Czego ja się nauczyłem z tego wpisu? Czasami mniejsza rozdzielczość danych (dane pokazane są z dokładnością do 5%) idzie w parze z większą czytelnością. Dwadzieścia okazuje się wystarczającą liczbą ludzików by pokazać rosnący problem nadwagi z wiekiem. Mniej nie pokazałoby różnic, więcej byłoby nieczytelne. W tym przypadku dwadzieścia to jest TA liczba.
Dzisiaj wykorzystam wizualizację Magdy by pokazać jeszcze dwa wymiary z danych: kraj i rok w którym przeprowadzono badanie.
Acha, i wykorzystam do tego bibliotekę D3 do tworzenia interaktywnych wykresów.

Czytaj dalej Młodzi XXL a interaktywna grafika z R i biblioteką D3 javascript