Z pamiętnika nauczyciela akademickiego

Jedną z zaproszonych prelegentek na useR 2016 była Deborah Nolan z referatem ,,Statistical Thinking in a Data Science Course’’. Dora jest profesorem na Berkeley, zajmuje się między innymi technikami nauczania statystyki i napisała świetną książkę ,,Teaching Statistics: A Bag of Tricks’’. Jest też orędowniczką wizualizacji danych i poznawania statystyki przez eksperyment. W swoim referacie poruszyła kilka kwestii, które są mi bliskie i które uważam za ważne, więc poniżej przedstawię je miksując z własnymi doświadczeniami z prowadzenia zajęć w poprzednim semestrze. Całą prezentacje Dory można obejrzeć tutaj a grafiki w tym wpisie pochodzą z jej prezentacji.

Swoją drogą, podczas useR zorganizowane były dwie sesje poświęcone nauczaniu statystyki z użyciem R, jedną nawet miałem przyjemność moderować. Lista referatów z tych sesji znajduje się tutaj. Można też obejrzeć nagrania.

Wróćmy do prezentacji Dory.
Jedną z praktyk dotyczących nauczania statystyki z którą chciała się rozliczyć, jest podejście, że analiza eksploracyjna i wizualizacja danych jest dla dzieci, można tego uczyć w przedszkolu, ale nie wypada uczyć tego matematyków na studiach. Na studiach jest miejsce wyłącznie na teorię. Słowo wyłącznie jest tu użyte dosłownie. Nie jeden z nas doświadczył zajęć ze statystyki w których nie pojawiły się żadne [!] dane. Zdaniem Dory teoria jest bardzo ważna, ale drogą do niej są doświadczenia i intuicje zrodzone z EDA.

Czasem, nawet jeżeli dane się pojawiają, to często w charakterze obiadu w puszce. Dane tak przygotowane by zastosować do tych konkretnych danych jedną, jedyną właściwą, konkretną metodę, pokazać wyniki i lecieć dalej.
Tymczasem prawdziwa analiza danych dla niebanalnych problemów wygląda zupełnie inaczej.
Czasem w ogóle nie wiadomo co trzeba zrobić. A nawet jeżeli już wiadomo co zrobić to często nie wiadomo jaką metodą. Samo ustalanie co i jak może stanowić najtrudniejszy problem, który jest do rozwiązania.

Ok, wiemy już, że na zajęciach ze statystyki chcemy użyć danych i że chcemy by problemy były niebanalne. Jak to zrobić? Pomysł jest w sumie prosty, wprowadzić projekty oparte o współczesne, duże, bogate, złożone dane, związane z otwartymi pytaniami badawczymi.

Skąd brać takie projekty? Na naszych zajęciach na MIM UW czy MiNI PW udało się nawiązać współpracę z Ministerstwem Zdrowia, firmą Applica, działem badawczym Centrum Nauki Kopernik, Entuzjastami Edukacji i zespołem USOSa. Każdy z partnerów dał zbiór danych i wsparcie przy pozyskaniu wiedzy dziedzinowej. Dużych i ciekawych danych było więc sporo, do danych były dołączone dosyć otwarte problemy do rozwiązania.
Każdy projekt miał trzy fazy, co pozwoliło na stopniowe usprawnianie opracowanego rozwiązania, podsłuchanie tego co zrobiły inne grupy i ewentualne zaadaptowanie ich rozwiązań. Miłym bonusem była możliwość zaproszenia ekspertów dziedzinowych ze współpracujących instytucje na prezentacje projektów, dzięki czemu można wymienić się doświadczeniami z analiz (udało się między innymi zaprosić dyrektora IBE, capo di tutti capi USOSa, zrobić prezentacje w CNK).
[btw: Teraz szukam partnerów do projektów na przyszły rok, więc jeżeli Wasza firma/organizacja robi ciekawe rzeczy z ciekawymi danymi to zapraszam do kontaktu].

Co ciekawe, dyskusja po referacie Dory krążyła wokół obawy (wspólnej dla wielu krajów) ,,Ale nasi przełożeni są matematykami, nasi koledzy są matematykami, nasi studenci są matematykami, czy im się to spodoba?”. Odpowiedź prowadzącej była prosta. Jednym się spodoba, innym nie. Ale warto dać studentom trochę różnorodności. Bo na obecnie przematematyzowanej statystyce osoby preferujące doświadczalne podejście do analizy danych mogą nie znaleźć inspiracji. Może więc warto im pokazać, że analiza danych ma wiele oblicz i różne oblicza kręcą różne osoby.

Jak te projekty przyjeli moi studenci? Czy chciało im się spędzać godziny nad projektem, by sprawdzać co tam jeszcze można z tych danych wycisnąć? Czy studentom przyzwyczajonym do dowodzenia twierdzeń takie zajęcia mogą się w ogóle spodobać jeżeli za problemem do analizy nie stoi Google albo Microsoft?

Jednym tak innym nie. Znaleźli się studenci traktujący projekty jako zło konieczne. Wczytaj dane, wytrenuj las losowy, pokaż wynik, zapomnij. Ale trafiły się grupy robiące z danymi cuda. Na statystyce II znalazły się grupy, które do predykcji używały modeli mieszanych, regresji Poissona czy thin plate splines, choć żadnej z tych metod nie omawialiśmy na wykładzie [!!! i o to chodzi]. Na R i Duże Dane kilka zespołów wykorzystało łańcuchy markowa (których nie omawialiśmy na naszych zajęciach) i wywiązała się dyskusja czy założenia tej metody są w określonej sytuacji spełnione czy nie.

Jaka jest więc pointa? Dajmy studentom trochę różnorodności. Obok klasycznych matematycznych wykładów ze statystyki zróbmy miejsce na trochę szaleństwa w eksploracje danych mniej lub bardziej na oślep licząc, tak by uczyć się poruszać w gąszczu prawdziwych problemów. A nuż im się ten gąszcz spodoba.

useR 2016 – tutoriale

IMG_1102

Właśnie zakończył się pierwszy dzień useR2016, czyli sesja z tutorialami.
Do wyboru było wiele ciekawych pozycji (lista z opisami tutaj). Poniżej opiszę wrażenia z czterech, w których uczestniczyłem.

Never Tell Me the Odds! Machine Learning with Class Imbalances Max Kuhn – Pfizer.
Materiały do tego tutorialu znajdują się na githubie. Max (znany pewnie większości jako twórca pakietu caret) opowiadał o strategiach radzenia sobie z niezrównoważonymi klasami w problemie klasyfikacji. I oczywiście pokazywał jak rozwiązać ten problem z pakietem caret. O ile problemu prawie nie ma dla takich metod jak regresja logistyczna, to dla metod opartych o drzewa problem może być poważny. W materiałach jest porównanie trzech głównych strategii radzenia sobie z tym problemem: undersampling, oversampling i zmiana funkcji kosztu.
To był moim zdaniem najlepszy tutorial tej edycji useR.

Machine Learning Algorithmic Deep Dive, Erin LeDell – H2O.ai.
Równolegle prowadzony był tutorial pracownika H2O. To właśnie afiliacja prelegenta jak i atrakcyjne ,,deep dive” skusiła mnie i ponad 150 innych osób do wzięcia udziału w tym tutorialu. Ale okazało się, że nie było miejsca na głębokie zanurzenie, co najwyżej udało się zamoczyć stopy.
O ile sam tutorial był średnio udany (problemy z instalacją jupitera wykosiły ponad połowę osób, a jak się okazało wcale nie był on potrzebny bo i tak nie było czasu na uruchomienie kodu) to materiały są całkiem niezłe. Znajdują się one na githubie.

An Introduction to Bayesian Inference using R Interfaces to Stan, Ben Goodrich
Ponieważ język Stan znajduje się bardzo wysoko na liście rzeczy, które chciałbym bliżej poznać, z wielkimi nadziejami zapisałem się na ten tutorial. Ben jest jednym z kluczowych twórców Stana. Materiały z tego tutorialu znajdują się na tej stronie.
Materiały są ciekawe, choć jak dla mnie mogłoby być więcej bardziej złożonych przykładów zamiast zastanawiania się dlaczego ci częstościowi statystycy są tacy źli.
Najbardziej spodobał mi się ten slajd pokazujący jak sprawnie NUTS radzi sobie z korelacją kolejnych obserwacji (w porównaniu do RW Metropolisa czy algorytmu Gibbsa). To akurat dobra motywacja by dalej zgłębiać ten pakiet.

Using R with Jupyter Notebooks for Reproducible Research, Andrie de Vries & Micheleen Harris
W sali obok stan’a toczył się tutorial poświęcony bibliotece jupiter. Materiały są dostępne na githubie. Poza podstawami jupitera można było poznać https://notebooks.azure.com, czyli usługę pozwalającą na hostowanie notebooków na microsoftowym azurze. Najciekawsza na tym tutorialu była forma. Prowadząca wykorzystywała kilka ciekawych tricków związanych z prowadzeniem warsztatów, jak np. używanie karteczek aby szybko sygnalizować, że są jakieś problemu czy by robić szybkie binarne ankiety.

Shiny + archivist = reproducible interactive exploration


Shiny is a great tool for interactive exploration (and not only for that). But, due to its architecture, all objects/results that are generated are stored in a separate R process so you cannot access them easily from your R console.

In some cases you may wish to retrieve a model or a plot that you have just generated. Or maybe just wish to store all R objects (plots, data sets, models) that have been ever generated by your Shiny application. Or maybe you would like to do some further tuning or validation of a selected model or plot. Or maybe you wish to collect and compare all lm() models ever generated by your app? Or maybe you would like to have an R code that will recover given R object in future.

So, how to do this?

Czytaj dalej Shiny + archivist = reproducible interactive exploration

useR 2015 a htmlwidgets

Zastanawiałem się, czy tegoroczna konferencja useR zwiastowała jakąś gigantyczną, przełomową zmianę w świecie R.
Poprzednia konferencja useR zadziałała jak katalizator dla pakietu dplyr i operatora %>%. Środowisko (szczególnie kalifornijskie) znało oba rozwiązania już od kilku miesięcy, ale useR 2014 rozlał zachwyt pipe’ami ze wczesnych użytkowników na całą społeczność.

A co przełomowego objawiło się podczas useR w tym roku? Problem z rewolucjami jest taki, że nie widać ich gdy się dzieją, łatwo za to je obserwować z perspektywy czasu. Zaryzykuję jednak i pobawię się we wróżbitę.

Dla mnie czarnym koniem są htmlwidgets.
Dlaczego?

Czytaj dalej useR 2015 a htmlwidgets

useR2015 a uczenie statystyki i analizy danych

Program R przez lata rozwijał się jako narzędzie do nauki analizy danych. Świetnie się do tego nadaje i jest wykorzystywany na coraz większej liczbie uczelni i nie tylko. Im więcej miejsc, tym więcej pomysłów na to, jak przygotować środowisko w którym uczniowie mogą poznać tajniki analizy danych z użyciem R. Można pracować z gołym R i zbiorem skryptów, ale można też doświadczenie edukacyjne znacznie urozmaicić. Podczas konferencji useR 2015 wygłoszono kilka ciekawych referatów, pokazujących jak można wykorzystać R do nauki analizy danych. Poniżej przedstawię kilka tematów, które najbardziej przypadły mi do gustu.

Czytaj dalej useR2015 a uczenie statystyki i analizy danych

useR, grafy i rekomendacje filmów

Minął już ponad tydzień od (fantastycznie zorganizowanej) konferencji useR 2015. Dopiero teraz znalazłem trochę czasu by zebrać garść wrażeń. Przegląd wybranych wystąpień z krótkimi komentarzami znaleźć można w agregacie blogów rbloggers. Ograniczę się więc wrażenia do kilku tematów, ale napiszę o nich ciut więcej. Dziś będzie o tutorialu ,,Statistical Analysis of Network Data’’, który poprowadził Gábor Csárdi (Harvard). Link do materiałów: http://igraph.github.io/netuser15/user-2015.html.

Tutorial w znakomitej większości był poświęcony bibliotece igraph (http://igraph.org/) do której dostępne są łączniki z poziomu R i Pythona. Łącznik dla R to pakiet o nazwie igraph. Zgodnie z nazwą tutoriala nacisk położono na analizę danych sieciowych, ale nie zabrakło przykładów wizualizacji grafów. Zarówno statycznych, zaimplementowanych w igraph jak i dynamicznych zaimplementowanych w pakiecie networkD3 (skądinąd autorstwa Christopher Gandrud & JJ Allaire z RStudio). Obie biblioteki są przedstawione w świetnym wprowadzenie do wizualizacji sieci http://kateto.net/network-visualization autorstwa Katherine Ognyanova.

Czytaj dalej useR, grafy i rekomendacje filmów

Perełki z useR 2014

Wczoraj zakończyła się konferencja useR, poniżej wkleję kilka linków do tematów, które najbardziej mnie zainteresowały. Wyraźnie widać przesunięcie akcentów na technologię w useR’ach w Ameryce i na matematykę w useR’ach w Europie. W tej edycji udział wzięło około 700 osób, kolejna konferencja useR!2015 będzie w Danii.

Ciekawy był referat Johna Chambersa, dotyczący interfejsów i dużych danych. Swoista odpowiedź dla tych narzekających, że pewnych rzeczy w R zrobić nie można tak szybko jak w innych językach (np. wywołanie funkcji to koszt około 10^3 operacji a data.frame są nieustannie kopiowane). Podał trzy projekty Rcpp11, Rllvm i h2o które umożliwiają zanurzenie w R kodu bibliotek napisanych w innych językach.

Bardzo ciekawy był referat o ggvis, projekcie łatwego tworzenia interaktywnych wykresów (kombinacja ggplot, shiny, dplyr i vega.js). Konkurencja dla interaktywnych wykresów, np rCharts ma tę wadę, że jest jedynie zbiorem (fajnych) szablonów, a ggvis to gramatyka. Poza tym połączenie shiny, markdown i ggplota pojawiało się w kilku referatach o systemach raportujących.

Urzekające było gdy przy prezentacji plot.ly (narzędzie do współdzielonej pracy nad wykresami) użyto do prezentacji wyników z polskiej matury 2013 (ten rozkład robi wrażenie).

DE przedstawił platformę docker, która wydaje się być genialnym narzędziem do testów kodu pomiędzy platformami.

Przez wiele referatów przewijała się biblioteka leaflet do tworzenia interaktywnych map.

Przedstawiono 'easter egg’w R, aby zobaczyć jak działa trzeba wpisać poniższe trzy linijki do R
Anybody ? there ???
?
''

JF pokazał nowe funkcje w bibliotece effects, do wizualizacji efektów w modelach regresyjnych.

Spodobał mi się pakiet scagnostic do diagnostyki scatterplotów.

Drugi SER [Spotkanie Entuzjastów R]

Zainteresowanie pierwszym Spotkaniem Entuzjastów R przerosło nasze oczekiwania. Mając 42 chętnych oraz salę z 14 krzesłami, musieliśmy zamknąć rejestrację na kilka dni przed wydarzeniem.
Tym razem będziemy mieć większą salę, przesyłajcie więc informacje o spotkaniu znajomym.

Drugie Spotkanie Entuzjastów R odbędzie się 20 marca w WARSZTAcie, przestrzeni wypożyczanej NGOsom w samym środku Warszawy, a dokładniej na placu Konstytucji 4.
Zaczynamy o 17:15.

Przed nami dwa bardzo ciekawe referaty: o przetwarzaniu napisów w R oraz o pracy z biblioteką shiny (szczegóły na plakacie poniżej).

Osoby planujące przyjść na spotkanie prosimy o wcześniejszą rejestracje z użyciem tego linku lub poniższego formularza.

Rejestracja zakończona

Osoby chcące pomóc przy organizacji kolejnych spotkań są mile widziane i proszone o kontakt emailowy.

Big Data, R i useR.

Tydzień temu podczas konferencji use!R miałem przyjemność zapoznać się z treścią szkolenia ,,Programming with Big Data in R”. Materiały dostępne tutaj.

Materiał prezentowane podczas szkolenia są również dostępne w postaci 80-stronicowej winietki/ilustracji ,,Speaking Serial R with a Parallel Accent”.
W skrócie zbiór pakietów pbd* zawiera między innymi:
– pdbMPI [pracujący z MPICH, OpenMPI] kilkukrotnie szybszy niż Rmpi
– pbdNCDF4 [operacje na plikach w zrównoleglonych systemach plików]
– pbdDMAT [operacje na macierzach z użyciem ScaLAPACK (Scalable Linear Algebra PACKage)].

Wiele się dzieje na styku HPC Big Data i R. I dobrze.

Co do wrażeń z samej konferencji. Było kilka bardzo interesujących referatów (z wizualizacji danych o mapach i skali Likerta, z analizy danych o ultraszybkiej alternatywie do MCMC, z inżynierii oprogramowania o pakietach data.table, zmianach w 3.0.1 itp). Część z tych tematów przedstawię w kolejnych wypisach, są bardzo ciekawe i warto o nich napisać trochę więcej. O ile zaproszone referaty były na wysokim poziomie, o tyle widać było, że organizatorzy bardziej postawili na stronę towarzyską konferencji niż na dopracowanie szczegółów organizacyjnych. Poprzednie edycje miały lepiej przygotowane sesje, bardziej zsynchronizowane referaty, trzymające się ustalonej długości i kolejności. Na tej konferencji kolejność referatów potrafiła się zmienić, podczas przerw kawowych było też więcej piwa i wina niż na wszystkich poprzednich konferencjach useR razem wziętych, co w pewnym sensie odzwierciedlało priorytety organizatorów.

Miłym akcentem było spotkanie sporej grupy polaków. Dr Zdzisław Piasta przyjechał z liczną grupą studentów i doktorantów. Było też kilka osób z innych miast. Na materiałach reklamowych Revolution Analitics można było znaleźć odbitki plakatów z konferencji WZUR. To duża zmiana w stosunku do poprzednich edycji useR.

Wciąż useR pozostaje dla mnie najprzyjemniejszą z konferencji, wiele osób o podobnych do moich zainteresowaniach. Konferencji, na której spotkać można i ludzi z przemysłu i akademii, jednak bez pustosłowia (spotykanego na niektórych konferencjach biznesowych) i bez zadęcia (spotykanego na niektórych konferencjach naukowych). Konferencją na którą przyjeżdżają zarówno weterani jak i nowi użytkownicy. Duża liczba nowych użytkowników jest pewnego rodzaju gwarancją, że nie zamienia się to w towarzystwo wzajemnej adoracji.

Za rok Los Angeles.