Dyscypliny czasopism

Dzisiaj bardzo technicznie.
Od jakiegoś czasu, umysły wielu polskich naukowców zaprząta problem: do jakiej dyscypliny naukowej się przypisać?. Wczoraj ministerstwo opublikowało listę przypisań czasopism do dyscyplin (na tej stronie). Lista jest w postaci pliku pdf. Aby dało się z nią pracować zapisałem ją w formacie txt tutaj.
Przyjrzymy się tej liście.

Mamy na niej 44 dyscypliny i 27301 czasopism.
Dla 136 czasopism przypisano wszystkie 44 dyscypliny (np. Science czy Nature). Dla 3/4 czasopism przypisano trzy lub więcej dyscyplin. Poniżej histogram (obcięty do 20 czasopism dla czytelności).

Dla każdej pary dyscyplin policzyłem ile jest czasopism, które są przypisane do obu dyscyplin. Taką tablę współwystępowania można pobrać z tej strony.

A jak już mamy tabelę współwystępowania to trzeba zrobić z niej graf. Poniżej graf wykonany z użyciem pakietu igraph. Wielkość wierzchołka – liczba czasopism, grubość krawędzi – liczba wspólnych czasopism.

Mnie najbardziej interesowały dyscypliny z którymi czuję się jakoś związany. Wycinek powyższej tabeli dla 9 wybranych dyscyplin przedstawiam tutaj.

Jest kilka ciekawostek.

Np. dyscyplinę informatyka ma przypisanych 2510 czasopism, z czego 2506 ma też przypisaną informatyka techniczna i telekomunikacja. Wśród tych czterech z informatyki, ale nie informatyki technicznej mamy Journal of Experimental Algorithmics, Konstruktion i Positivity. Poza tymi nielicznymi wyjątkami, liczba czasopism z przypisaniem informatyka zawiera się w informatyce technicznej.

Matematyka ma duże przecięcie z obiema informatykami. 70% czasopism z przypisaną matematyką, ma też przypisane obie informatyki.

Nauki medyczne mają bardzo duże przecięcie z naukami o zdrowiu (to nie jest zaskoczeniem). Podobnie z biologią i bioinżynierią.

Bardzo dobre czasopisma związane z ML (np. Journal of Machine Learning Research, Journal of Statistical Software) są przypisane do obu informatyk i matematyki.

Część środowiska obawiała się, że jeżeli przypisze się do dyscypliny X to później okaże się, że nie może do tej dyscypliny przypisać części swoich prac. Ale ogólne moje wrażenie jest takie, że czasopisma do dyscyplin przypisane są z rozmachem.
Ministerstwo deklaruje, że nawet jeżeli czasopismo nie jest przypisane do jakieś dyscypliny, to będzie można konkretną pracę do dyscypliny przypisać, tyle, że nie z automatu.
Zobaczymy.
Bioinformatycy publikujący np. w Nucleic Acids Research nie znajdą w wykazie jej dyscyplin ani informatyki ani informatyki technicznej. A że problem (?) z NAR i mnie dotyka, więc pewnie jeszcze o nim napiszę.

Ponoć gdzieś po sieci krąży plik z informacją o punktacji dla poszczególnych czasopism. Chętnie sprawdziłbym jak to współdzielenie dyscyplin wygląda wśród tych najlepszych czasopism.

Matematyka i wizualizacja danych, czyli plany wydawnicze na koniec 2018

Na końcówkę roku szykujemy dwie bardzo ciekawe pozycje. Póki co zapowiedzi. Napiszę gdy już ukażą się w sprzedaży lub przedsprzedaży.


Pierwsza z nich to ,,W pogoni za Nieskończonością”. To 32 stronicowy komiks o przygodach Bety i Bita.

Tym razem rodzeństwo zmierzy się z Nieskończonością. A że to nie mały problem, więc i publikowany zeszyt jest początkiem (oby) dłuższej serii.

Patrząc na okładkę część z Was pewnie widzi kreskę znanego biologia i popularyzatora przyrody Tomasza Samojlika (autor między innymi książek o Żubrze Pompiku). Drugim rysownikiem jest Sebastian Szpakowski. Treścią matematyczną współopiekował się Łukasz Maciejewski.

Nie dajcie się zwieść. To nie jest komiks dla dzieci! Poruszamy w nim poważne tematy. Zresztą, już niedługo zobaczycie sami.


Druga zapowiedź dotyczy zeszytu ćwiczeń ,,Wykresy unplugged”.

Tym razem 28 osiem stron informacji o wykresach oraz miejsca na samodzielne praktykowanie sztuki wizualizacji danych.

Zeszyt wyposażony jest w 8 kompletów danych i ćwiczeń do samodzielnego wyrysowania. Wyrysowania ołówkiem i kredkami, nie ma co ograniczać się do możliwości nawet najlepszego programu graficznego. Jedynym ograniczeniem niech będzie wyobraźnia!

Obok ćwiczeń jest też kilka wkładek tematycznych o technikach wizualizacji. I w tym wypadku nie dajcie się zwieść kredkom. To zeszyt ćwiczeń dla każdej kreatywnej osoby, nawet zabieganego dyrektora działu Data Science.

Stroną graficzną opiekowała się Magda Małczyńska-Umeda i zespół StoryVisio (autorka między innymi Infostory), merytoryczną opiekowałem się razem z Ewą Baranowską, przy wsparciu Piotra Sobczyka z Szychta w danych.


Czekając na te pozycje można zawsze sięgnąć do pozycji już obecnych na rynku. Np. do Zbioru Esejów o sztuce prezentowania danych. Do zamówienia ze strony Wydawnictw Uniwersytetu Warszawskiego.

Break Down: model explanations with interactions and DALEX in the BayArea

The breakDown package explains predictions from black-box models, such as random forest, xgboost, svm or neural networks (it works for lm and glm as well). As a result you gets decomposition of model prediction that can be attributed to particular variables.

The version 0.3 has a new function break_down. It identifies pairwise interactions of variables. So if the model is not additive, then instead of seeing effects of single variables you will see effects for interactions.
It’s easy to use this function. See an example below.
HR is an artificial dataset. The break_down function correctly identifies interaction between gender and age. Find more examples in the documentation.

Figure below shows that a single prediction was decomposed into 4 parts. One of them is related to the interaction between age and gender.

BreakDown is a part of DALEXverse – collection of tools for visualisation, exploration and explanation of complex machine learning models.

Till the end of September I am visiting UC Davis and UC Berkeley. Happy to talk about DALEX explainers, XAI and related stuff.
So, if you want to talk about interpretability of complex ML models, just let me know.

Yes, it’s part of the DALEX invasion 😉
Thanks to the H2020 project RENOIR.

Ceteris Paribus v0.3 is on CRAN

Ceteris Paribus package is a part of DALEX family of model explainers. Version 0.3 just gets to CRAN. It’s equipped with new functions for very elastic visual exploration of black box models. Its grammar generalizes Partial Dependency Plots, Individual Conditional Expectations, Wangkardu Plots and gives a lot of flexibility in model comparisons, groups comparisons and so on.

See a 100 sec introduction to the ceterisPackage package on YouTube.

Here you will find a one-pager cheat-sheet with selected use cases.

Here is a longer introduction with notation and some theory.

Here there is a vignette with examples for regression (housing prices).

And here for multiclass classification (HR models).

It’s a work in progress. Feel free to contribute!

Local Goodness-of-Fit Plots / Wangkardu Explanations – a new DALEX companion

The next DALEX workshop will take place in 4 days at UseR. In the meantime I am working on a new explainer for a single observation.
Something like a diagnostic plot for a single observation. Something that extends Ceteris Paribus Plots. Something similar to Individual Conditional Expectation (ICE) Plots. An experimental version is implemented in ceterisParibus package.
 
Intro

For a single observation, Ceteris Paribus Plots (What-If plots) show how predictions for a model change along a single variable. But they do not tell if the model is well fitted around this observation.

Here is an idea how to fix this:
(1) Take N points from validation dataset, points that are closest to a selected observation (Gower distance is used by default).
(2) Plot N Ceteris Paribus Plots for these points,
(3) Since we know the true y for these points, then we can plot model residuals in these points.
 
Examples

Here we have an example for a random forest model. The validation dataset has 9000 observations. We use N=18 observations closest to the observation of interest to show the model stability and the local goodness-of-fit.


(click to enlarge)

The empty circle in the middle stands for the observation of interest. We may read its surface component (OX axis, around 85 sq meters), and the model prediction (OY axis, around 3260 EUR).
The thick line stands for Ceteris Paribus Plot for the observation of interest.
Grey points stands for 18 closest observations from the validation dataset while grey lines are their Ceteris Paribus Plots. 
Red and blue lines stand for residuals for these neighbours. Corresponding true values of y are marked with red and blue circles. 

Red and blue intervals are short and symmetric so one may say that the model is well fitted around the observation of interest.
Czytaj dalej Local Goodness-of-Fit Plots / Wangkardu Explanations – a new DALEX companion

modelDown: a website generator for your predictive models

I love the pkgdown package. With a single line of code you can create a complete website with examples, vignettes and documentation for your package. Brilliant!

So what about a website generator for predictive models?
Imagine that you can take a set of predictive models (generated with caret, mlr, glm, xgboost or randomForest, anything) and automagically generate a website with an exploration/documentation for these models. A documentation with archvist hooks to models, with tables and graphs for model performance explainers, conditional model response explainers or explainers for particular predictions.

During the summer semester three students from Warsaw University of Technology (Kamil Romaszko, Magda Tatarynowicz, Mateusz Urbański) developed modelDown package for R as an team project assignment. You can find the package here. Visit an example website created with this package for four example models (instructions). And read more about this package at its pkgdown website or below.

BTW: If you want to learn more about model explainers, please come to our DALEX workshops at WhyR? 2018 conference in Wroclaw or UseR! 2018 conference in Brisbane.

Getting started with modelDown
by Kamil Romaszko, Magda Tatarynowicz, Mateusz Urbański

Introduction

Did you ever want to have one place where you can find information explaining your model? Or maybe you were missing a tool that can show difference in multiple models for the same dataset? Well, here comes modelDown package. By using DALEX package, it creates one html page with plots and information related to the model(s) you want to analyze.

If you want to check out example website generated with modelDown, check out this link (along with script that was used to create the html). Read on to see how to use package for your own models and what features it provides.

The examples presented here were generated for dataset HR_data from breakDown package (available on CRAN). The dataset contains various information about employees (for example their satisfaction from work or their salary). The information we predict is whether they left the company.

Installation
First things first – how can you use this package? Install it from github:

Czytaj dalej modelDown: a website generator for your predictive models

Not only LIME

I’ve heard about a number of consulting companies, that decided to use simple linear model instead of a black box model with higher performance, because ,,client wants to understand factors that drive the prediction’’.
And usually the discussion goes as following: ,,We have tried LIME for our black-box model, it is great, but it is not working in our case’’, ,,Have you tried other explainers?’’, ,,What other explainers’’?

So here you have a map of different visual explanations for black-box models. Choose one in (on average) less than three simple steps.

These are available in the DALEX package. Feel free to propose other visual explainers that should be added to this map (and the package).

Ceteris Paribus Plots – a new DALEX companion

If you like magical incantations in Data Science, please welcome the Ceteris Paribus Plots. Otherwise feel free to call them What-If Plots.

Ceteris Paribus (latin for all else unchanged) Plots explain complex Machine Learning models around a single observation. They supplement tools like breakDown, Shapley values, LIME or LIVE. In addition to feature importance/feature attribution, now we can see how the model response changes along a specific variable, keeping all other variables unchanged.

How cancer-risk-scores change with age? How credit-scores change with salary? How insurance-costs change with age?

Well, use the ceterisParibus package to generate plots like the one below.
Here we have an explanation for a random forest model that predicts apartments prices. Presented profiles are prepared for a single observation marked with dashed lines (130m2 apartment on 3rd floor). From these profiles one can read how the model response is linked with particular variables.

Instead of original values on the OX scale one can plot qunatiles. This way one can put all variables in a single plot.

And once all variables are in the same scale, one can compare two or more models.

Yes, they are model agnostic and will work for any model!
Yes, they can be interactive (see plot_interactive function or examples below)!
And yes, you can use them with other DALEX explainers!
More examples with R code.

RODO + DALEX, kilka słów o moim referacie na DSS


W przyszły piątek (8 czerwca) na wydziale MiNI PW odbędzie się konferencja Data Science Summit.
W sali 107 pomiędzy 10:50 a 11:20 ma miejsce mój referat Wyjaśnij! Jak budować wyjaśnialne modele ML / AI i jak to się ma do RODO?, na który serdecznie zapraszam.

Planuję opowiedzieć o temacie, który wciąga mnie coraz bardziej, czyli wyjaśnialnym AI (XAI). Jak to się ma do RODO i o co chodzi z pogłoskami o ,,prawie do wyjaśnienia”?

To będzie techniczny referat (sorry, żadnych zdjęć kotów czy psów, być może jakieś zdjęcia robotów). Pokażę jak konstruować i używać wykresy breakDown (i powiem dlaczego są lepsze niż LIME czy wartości Shapleya), będzie też mowa o najnowszym wyniku naszego zespołu, czyli wykresach What-If.

Osoby zainteresowane tematem, ale nie planujące udziału w konferencji, zapraszam do lektury dokumentacji DALEXa.

Btw: Na konferencji DSS planowany jest hackaton ,,Conquer urban data”, organizowany przez dr Marcina Lucknera. Hataton wykorzystujący dane z API Warszawy. Warto tam zajrzeć.

Maraton Analizy Danych, czyli niedzielna notatka z pamiętnika nauczyciela akademickiego


Miałem dzisiaj przyjemność uczestniczyć w pracach jury podczas Maratonu Analizy Danych, wydarzenia zorganizowanego przez koło SNK Data Science Management z SGH. Hakaton trwał 24h, a po maratonie były jeszcze 3h prezentacji. W maratonie wzięły udział zespoły głównie z UW, PW i SGH, choć byli też uczestnicy z innych uczelni, również spoza Warszawy.

Przestrzeń na hakaton bardzo przyjemna (Mysia 3), organizacja świetna (ale czy czegoś innego można się spodziewać po kole z SGH?). To był jeden z bardzo nielicznych hakatonów, w którym duży nacisk położono na faktyczną analizę danych.

Takie imprezy robią na mnie duże wrażenie. Młodzi ludzie, przez cały dzień i całą noc walczą z jakimś problemem, a później jeszcze mają siłę pokazać wyniki innym zespołom.
Ach te studenckie czasy!
Wśród rozwiązań dominował R i Python, sporo było map (oczywiście leaflet), były aplikacje Shiny, a nawet w prezentacjach pojawił się jakiś PowerBI. Od strony metodologicznej dało się wyczuć dwa rodzaje podejść, nazwijmy je umownie podejściem maszynowym (jak model to random forest albo xgboost) i statystycznym (aż po statystykę Morana dla danych przestrzennych). To już same w sobie było świetne, uczestnicy zostali wystawieni na nowe (dla części z nich) algorytmy i podejścia do analizy danych.

Lubię takie wydarzenia, ponieważ pokazują jakie kompetencje posiadają najaktywniejsi studenci (ech, to spaczone spojrzenie nauczyciela akademickiego).
Od strony narzędziowej zespoły prezentowały bardzo wysoki poziom (a to studenci I i II stopnia), niesamowite co udało się zrobić w 24h. Od strony prezentacyjnej poziom też był wysoki. Czytelne sensowne przedstawianie problemu i rozwiązania. Były zespoły, które zdążyły zrobić i analizę i aplikację webową i bardzo graficznie dopracowaną prezentację. Znacznie wyższy poziom niż +-10 lat temu gdy prezentacje projektów bywały drętwe.

Ponieważ jestem człowiekiem, dla którego do szklanki zawsze można jeszcze trochę dolać, więc i tutaj zastanawiałem się jakie kompetencje dotyczące analizy danych można by dalej rozwinąć.

I wyszło mi, że wąskim gardłem było najczęściej samo określenie problemu do rozwiązania. Często (a pisząc często rozszerzam to i na inne znane mi hakatony i na znane mi projekty uczelniane) analiza danych jest ,,data-driven” a nie ,,problem-driven”.
Wychodzi się od dostępnego zbioru danych i zastanawia jaki by tu problem z tych danych rozwiązać. W konsekwencji gdy już wydaje się, że ten problem się rozwiązało, okazuje się, że te dane niespecjalnie się do tego problemu nadawały. Czy to z powodu agregacji, czy zakresów czy czegoś innego.
Pozostawia to pewien niedosyt. Widać było ciekawy problem, widać było wysiłek i umiejętności, ale rozwiązanie nie jest w pełni satysfakcjonujące z uwagi na ,,zniewolenie myślenia przez te konkretne dane”. Rozwiązanie nie jest wymuskane, lśniące, pachnące itp.
Potraktowałbym to jako wskazówkę dla prowadzących przedmioty projektowe na uczeniach, by większy nacisk włożyć na krytyczną ocenę potencjału wykorzystania określonego źródła danych.

Tak czy inaczej Maraton Analizy Danych był fantastycznym wydarzeniem pełnym pozytywnej energii. To była pierwsza edycja, oby były kolejne.
Najbliższy hakaton związany z analizą danych odbędzie się za dwa tygodnie, podczas konferencji Data Science Summit (nasza fundacja jest partnerem!).
Z pewnością też tam będę 😉