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.
ad Class Imbalances
Czy z prezentacji Maxa Kuhna wynikało, że te metody mogą poprawić ogólną skuteczność predykcyjną modelu (accuracy)? Bo z mojego doświadczenia wynika, że raczej nie. Mają wpływ na inne parametry (sensitivity, specifity – które oczywiście w pewnych sytuacjach są bardziej istotne), ale sama skuteczność raczej cierpi. Zwłaszcza, gdy mamy kilka klas, z których jedna zdecydowanie dominuje.
Tak.
Przy czym Max argumentował, że przy braku zrównoważenia lepiej porównywać AUC a nie accuracy.
Porównując AUC pokazywał zysk dla takich metod jak lasy losowe lub boosting drzew. Co więcej zysk był widoczny i dla downsamplingu i upsamplingu co już jest zaskakujące, ale można to zweryfikować.
Obie metody bazują na drzewach więc ma to pewne uzasadnienie, ponieważ bez zrównoważenia drzewa są źle trenowane.
Na useR2016 nie ma przygotowanych AMI? Na Bioc2016 każdy uczestnik mogl wejść na RStudioServer z jego własnym unikalnym adresem IP gdzie były przygotowane wszystkie pakiety i narzędzia niezbędne do warsztatów, przez co nie było niepotrzebnych problemow z instalacja
Zaplecze na tutorialach organizują prowadzący we własnym zakresie.
Na tutorialu dot. jupitera uruchomiono kilkadziesiąt instancji na azurze, każdy miał swoje konto i nawet sprawnie to zagrało, ale na deep dive nie. A szkoda, bo H2O mogłaby naprawdę pokazać jak można sobie ułatwić a nie utrudnić pracę.
Bioc to spotkania developerów, może stąd to przygotowanie.