Digitální akademie: Kdo je nejúspěšnější instruktor kurzů pro seniory?

Oproti ostatním holkám jsme na Demo Day trochu zaspaly, proto jsme poslední tři týdny Akademie využily na maximum, abychom naši datovou analýzu posunuly co nejdál.

Autorky projektu: Šárka Hubáček & Zdenka Šunková
Mentor projektu: Vojtěch Dostál, Wikimedia ČR

Během našeho projektu jsme narazily na pár problémů a tu největší zábavu jsme zažily hned na začátku: k dispozici jsme měly tolik dat, že jsme neměly nejmenší tušení kde a s čím začít… (Blog pro Demo Day si můžete přečíst tady.)

Hodně nám už v úvodu projektu pomohl náš mentor Vojta, který nám řekl, co by je ve Wikimedia ČR vlastně zajímalo – zjistit něco více o kurzech (a jejich instruktorech), které v Česku pro začínající wikipedisty pořádají. Ač mají spoustu dat, sami se do jejich zpracování zatím nepustili. O samotných účastnících bohužel mnoho informací nemají, protože Wikimedia se snaží data osobního charakteru neuchovávat. Ale uvidíme, co dokážeme dostat z toho, co k dispozici máme!

Nástroje, které jsme v jednotlivých krocích projektu používaly (plus online nástroj Lucidchart na vytvoření tohoto a databázového schéma.)

První SQL dotazy a seznámení s webovým interface Quarry bylo trochu kostrbaté a zdlouhavé – obzvlášť proto, že se Šárka na spoustu věcí snažila přijít sama – a společně s velmi pozvolným kladením otázek nás to trochu zpomalilo hned ze začátku. Po nějaké době (právě v týdnu kolem Demo Day) tomu naštěstí přišla na kloub a SQL dotazy jí začaly jít jako po másle. I přes všechny zapomenuté čárky a závorky, přes nefungující vnořené selecty, které musely nahradit WHERE INy, se do toho pustila opravdu naplno a mohla tak Zdenči dodat více dat pro vizualizace. Mimochodem, ani ta se neobešla úplně bez problémů. Ani ne týden před Demo Day se Zdenčino Lenovo rozhodlo stávkovat, takže všechna už hezky očištěná data musela zpracovat znova. Naštěstí si pamatovala, co a jak dělala, tudíž jí to zabralo o trochu méně času než napoprvé. Uff!

Query pro základní data o instruktorech kurzů pro seniory.
Pro data ke kurzistům jsme využily data získaná tímto dotazem; pro data o kurzech jsme napsaly následující query:

Query k získání dat pro vytvoření word cloudu s kategoriemi editací.
Easy peasy select! Výběr uživatelů jsme omezily rolí účastník/instruktor a vyřazením uživatele 85654, který byl jakožto instruktor chybně zařazen mezi účastníky. Vzhledem k jeho vysokému počtu editací (téměř polovina z celkového počtu) by to významným způsobem ovlivnilo výsledky analýzy.

Potřebujeme data! Ale jaká?

Naším hlavním úkolem bylo zjistit efektivitu/úspěšnost jednotlivých instruktorů. Zaměřily jsme se na kurzy pro seniory, které probíhají už několik let po celém Česku. Nejzásadnější otázkou bylo, jak úspěšnost instruktorů určíme? Poměrně jednoduše – na základě počtu editací, které účastníci udělali během a po absolvování kurzu. Vytvořily jsme několik základních tabulek s daty, které jsme následně zjoinovaly v Power BI / Tableau a využily je k vizualizaci.

Během projektu jsme napsaly spoustu query, exportovaly řadu excelových tabulek a vytvořily x vizualizací, které jsme sice pro závěrečnou práci nepoužily, ale výrazným způsobem nám pomohly pochopit, s jakými daty pracujeme a jaké jsou naše mantinely. Přece jen jsme nechtěly na konci projektu zjistit, že jsme se omylem ustřelily a pohybujeme se v úplně jiných číselných řádech a relacích.

Potřebovaly jsme zjistit především:
kdo kurzy navštěvoval [user.user_id]
jaký kurz to byl [ep_courses.course_id, ep_courses.course_title]
kdy kurz proběhl [ep_courses.course_start, ep_courses.course_end]
kde kurz proběhl [ep_courses.course_description]
kdo kurz vedl [ep_courses.course_instructor]
kolik editací účastníci udělali [count (revision.rev_id)]
kdy účastníci editace udělali [revision.rev_timestamp]

A zároveň jsme chtěly:
zbavit se botů [user.ug_group]
rozdělit úpravy na malé a velké [revision.rev_minor_edit]
oddělit od sebe instruktory a účastníky kurzů [up_users_per_course.upc.role]
vybrat pouze kurzy určené seniorům [ep_course.course_title]
vybrat jen editace článků [page.page_namespace]

Naše struktura databáze s oblastmi a tabulkami, které jsme pro projekt používaly.

Nástroje ke zpracování dat

Pro získání dat jsme využívaly Quarry – dotazovací webový interface pro MariaDB – a SQL. Velkou pomocí v orientaci nám byla dokumentace, Vojtův kolega Martin a tohle super barevné schéma databáze. 🙂

Zdroj: Wikimedia.org

Pohybovaly jsme se prakticky jen v oblastech uživatelů [users], stránek [pages] a kurzů, která ve schéma zobrazena není [ep_courses, ep_user_per_course, ep_org].

MariaDB nemá ráda vnořené selecty a mnohem lépe pracuje, pokud se dotaz upraví tak, aby využil WHERE IN. Proto tento dotaz nedoběhl.

Data jsme čistily částečně přímo při jejich získávání a zbytek jsme dodělávaly buď v Excelu nebo ve vizualizačních nástrojích Tableau a Power BI. Největší oříšek byl získat seznam měst, kde kurzy probíhaly. Zdenči se sice povedlo napsat v Power BI skript, který informaci z textu [ep_courses.course_description] získal, ale nemálo řádků musela především kvůli skloňování očistit ručně. Excel jsme použily pro přípravu dat na vytvoření vizualizace typu word cloud v Tableau – protože když už tam ta surová data máte, proč to během pár minut nevyužít na nahrazení podtržítek za mezery a výběr top 100 položek? 🙂

Proč jsme pro vizualizaci použily dva nástroje? Je to úplně jednoduché a naprosto pragmatické – Zdenča zná dobře Power BI a dobře se jí s ním pracuje. Šárka má Mac a Power BI zavřené ve virtuálu na disku, který si věčně zapomíná doma. Super featurou obou nástrojů je možnost importu hotových dashboardů do HTML, díky čemuž si celou tu proklikávací legraci můžou užít i čtenáři blogu. (Power BI je pro propojení s WordPressem o něco jednodušší a o hodně přímočařejší než Tableau.)

Propojování tabulek v Tableau pro vizualizaci úspěšnosti instruktorů.
Psaní podmínek v Tableau je díky nápovědě poměrně velmi jednoduché.
Pomocí podmínek se dá snadno upravovat barva…
…i agregovat data.
Když vaše databáze neumí window funkce, nějaký jiný nástroj to umět určitě bude.
Stačí pak lehce upravit podmínku a najednou pracujete s úplně jinými daty.

Na co jsme přišly a jak to vidíme?

Pro lepší zážitek z vizualizací přepněte na zobrazení na celou obrazovku – stačí kliknout na ikonu v pravém dolním rohu. 🙂

Wikimedia ČR pořádá kurzy od roku 2014. Data jsou získána SQL dotazováním z Quarry a jsou aktuální k červnu 2018.

Kolik kurzů senioři navštěvují a jak moc/málo editují?

Naprostá většina kurzistů navštíví pouze jeden kurz, nicméně najdeme mezi seniory i několik výjimečně aktivních jedinců – a to jak v návštěvnosti kurzů, tak následně v dělání editací.

Kdy se kurzisté registrují?

Nejčastěji se senioři registrují během kurzu, čtvrtina z nich pak už před samotným začátkem. Obvykle se jedná o wikipedisty, kteří už nějakou dobu editují a svou aktivitu jen podpoří účastí na kurzu.

Jaký je poměr počtu editací? A jaký kurz je u seniorů nejpopulárnější?

Vysokou návštěvnost mají kurzy v Ústřední knihovně v Praze a kurzy pořádané centrem Elpida.
Za (realtivně) aktivního wikipedistu lze považovat toho, kdo udělá alespoň pět editací. V případě seniorských kurzů je to přibližně 80 % účastníků. Zajímavé pak je, že necelých osm procent kurzistů neudělala ani jednu editaci.

Za kterým kurzem je nejvíce editací?

Největší počet editací udělali účastníci kurzu Pokročilí II. v Městské knihovně v Praze. Celkem 32 444 editací provedlo 15 účastníků. V závěsu je kurz Pokročilí I. v Městské knihovně v Praze s 24 055 editacemi a 11 wikipedisty.

Jak aktivní jsou účastníci během samotných kurzů a po jejich absolvování?

Na aktivitu účastníků kurzů jsme se podívaly několika způsoby. První graf ukazuje editace účastníků jednotlivých kurzů s rozdělením na editace udělané v průběhu kurzu (červeně) a před/po něm (zeleně). Z této vizualizace tak je jasně patrné, jak jsou účastníci aktivní v čase.

Vzhledem ke kontinuálně probíhajícím editacím již od roku 2015 – tedy s ohledem na dlouhodobost editací – lze za velmi úspěšné označit kurzy uspořádané v Ústřední knihovně v Praze a začátečnický kurz Centra Elpida.

Agregovaná data k počtu editací před / v průběhu / po kurzu jsou pak v následujících grafech, které jsou rozděleny na dny/týdny/měsíce/roky. Časová osa je relativní, osa počtu revizí je v logaritmické stupnici a všemi grafy prochází osa ukazující průměrný počet editací. Pro lepší orientaci je zvolena stejná barevná škála napříč grafy.

Další grafy, které vypadají téměř identicky s těmi předchozími, reflektují opakovanou účast na kurzech. Pomocí Tableau alternativy FIXED k databázové window funkci OVER PARTITION BY jsme za relativní počáteční stav určily vždy pouze první navštívený kurz.

Další vizualizace ukazuje návštěvnost jednotlivých kurzů (ID kurzů na ose X; název kurzů je uveden v tooltipu) s poměrem kurzistů bez editace (oranžově) a s alespoň jednou editací (zeleně). Graf je možno filtrovat podle instruktora.

Jaký je poměr malých a velkých editací?

Zajímavé bylo i rozdělení editací na malé a velké. Významně převyšují editace malé, které zahrnují například gramatické, pravopisné nebo interpunkční opravy, formátování neměnící význam obsahu nebo odstraňování viditelného vandalismu.

Jaká města jsou nejaktivnější?

Nejvíce kurzů pro seniory proběhlo v Praze, kde je také nejvyšší počet účastníků. Na druhém místě se pak umístilo Brno.

Nejvíce editací provedli kurzisté, kteří se účastnili kurzů v Praze a Karlových Varech.

Které kategorie senioři nejčastěji editují?

Šárka si chtěla vyzkoušet word cloud, a protože nejčastěji jsme pracovaly s čísly, udělala si takový malý vedlejší projekt. Nejdřív zjistila, jaké kategorie článků účastníci seniorských kurzů editovali a z nich vybrala sto s nejvyšším výskytem. Kategorie článků jsou poměrně specifické a neexistuje nic jako obecné a souhrnné kategorie. Při čištění bylo potřeba odstranit “Pahýly” označující nedostatečně krátké články a “provozní” kategorie typu údržba a monitoring.

Tadá! To nejlepší na závěr

Titul nejúspěšnějšího instruktora kurzů pro seniory vyhrává… Vojtěch Veselý! Tedy alespoň podle požadavku, který jsme si nastavily na začátku: úspěšnost instruktorů určíme na základě počtu editací, které účastníci udělali během a po absolvování kurzu. Ovšem protože se ukázalo, že kritérií úspěšnosti můžeme mít více, rozhodly jsme se pro vítězů několik napříč kategoriemi:

Nejvyšší celkový počet editací udělaných kurzisty během kurzu a po něm: 58 614 (Vojtěch Veselý)
Nejvyšší průměrný počet editací na účastníka kurzu: 864,7 (Gampe)
Nejvyšší průměrný počet editací na kurz: 6 918 (Gampe)
Kurz s nejvyšším celkovým počtem editací: 32 444, Městská knihovna v Praze, Ústřední knihovna – Pokročilí II. (Gampe & Jagro)
Jsou kurzy úspěšné? Ano, s ohledem na téměř konstatní počet editací v čase, lze říct, že kurzisté zůstávají i po absolvování kurzu aktivní. Nicméně najdeme i několik kurzů, z nichž noví wikipedisté nevzešli.

Vítězům i všem zúčastněným tímto gratulujeme a předáváme pomyslný diplom a klíčenku. 🙂

Závěrem

Co nám projekt dal?
1. Naučil nás trpělivosti při čekání, až doběhne query.
2. Sebeovládání, když nás po necelé půl hodině Quarry zabilo kvůli naprosté blbosti.
3. Ujištění, že na čárkách záleží nejen při psaní diktátu, ale hlavně selectu.
4. Zjištění, že lineární grafy sice vypadají hezky, ale v bar chartu se líp čte.
5. Pochopení, že čištění dat umí být práce na pár minut, ale i na pěkně dlouho, pokud někde něco přehlédnete.
6. Naučil nás, že na pokládání správných otázek není nikdy pozdě, ale čím dřív na ně člověk přijde, tím víc času mu zbyde na spánek.
7. Zjistily jsme, jak moc je opravdu důležité správně najoinovat tabulky, abychom si kvůli duplicitám nezkreslily výsledky.
8. Naučily jsme se optimalizovat dotazy pro daný databázový server (MariaDB funguje opravdu trochu jinak než Snowflake, třeba taková window funkce, která je dostupná od verze 10.2 a my pracovaly s 10.1.33, by se nám při projektu hodila).
9. Pochopily jsme, že jedno správně napsané query dokáže ušetřit spoustu času při následném čištění dat.
10. Ukázalo se, že naklikat vizualizaci v Tableau je skoro snažší než ji propojit s WordPressem, ale zároveň jsme se ujistily v tom, že není prakticky nic, s čím by nám Google nebo Stackoverflow neuměl poradit.
11. Přestože existuje spousta skvělých aplikací a nástrojů, i programátor občas potřebuje papír a tužku. Hodí se obzvlášť při plánování a utřibování myšlenek.
12. V neposlední řadě jsme se naučily i bezproblémově orientovat v databázovém schéma.

Děkujem!

Chtěly bychom poděkovat klukům z Wikimedia, bez nichž by náš projekt rozhodně nebyl. Vojtovo super vedení, motivace a nadšení do projektu nás hnalo dopředu! Martinovi děkujeme za neskutečnou rychlost a přesnost, s jakou nám pomáhal opravovat chyby v našich query.

Děkujeme i všem lektorům a klukům a holkám z Czechitas za to, jak nás skvěle provedli světem for loopů, joinů, tabulek a grafů.

Šárka navíc děkuje Jirkovi, který ji k účasti na Digitální akademii nejen navedl, ale hlavně s ní po večerech v čajovně piloval Python, SQL i HTML a nutil ji přemýšlet víc, než by se jí kolikrát chtělo. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *