Closed PetraVidnerova closed 4 years ago
Check out this pull request on
You'll be able to see Jupyter notebook diff and discuss changes. Powered by ReviewNB.
Plán hodiny vypadá takto:
Za mě je to celkem v pohodě. Líbí se mi příklad na úvod, kde si zkusí sami úkol vyřešit. Jen si nejsem jist, zda se to dá všechno nacpat do jedné dvouhodinovky. Já bych například vypustil to psaní vlastní metriky, protože to polkne minimálně 20 minut a nic moc to ve finále nepřinese. Myslím si, že by stačilo, aby si napsali nějakou poznámku na papír, jak budou hodnotit kvalitu výsledku. Taky bych klidne změnšíl počet těch testovaných modelů.
Taky si nejsem úplně jist, jak některé části ovlivní možnost pracovat s materiály jen na webu jako čtenář — vkládání JS, generování mapky na každou lekci zvlášť atp. Přeci jen by ve finále mohly materiály sloužit i pro samouky a prozatím nenáme standardní způsob, jak se k notebooku dostat a materiály by ideálně měly být použitelné i bez spouštění lokálně.
Soubor regression_metrics/index.ipynb
se nedaří zobrazit ani na githubu ani v reviewNB.
Zatím dobrý. Uvidíme, jak to bude vypadat po učesání.
Počet modelů určitě přijde snížit. Ta metrika, možná stačí prodiskutovat, nemusí to implementovat.
Je to veeeeelmi pěkné. 👍 👍 👍 🏆
Drobnosti (typos zkusím označit v reviewnb):
Rychle jsem kouknul na intro a vypadá to moc dobře. Jen bych poprosil ostranit TODO a podobné komentáře, pokud už je to finální verze. Taky je tam těch notebooků nějak moc s různými jmény v různých složkách. Jsou všechny aktuální?
Díky. Složka ml přijde smazat, jinak osnova vypadá takto:
title: Strojové učení - úvod, regrese slug: ml1 date: 2020-03-12 materials:
title: Strojové učení - klasifikace slug: ml2 date: 2020-03-19 materials:
Uznávám, že těch adresářů je dost.
Dneska máme domluvený s Romanem pracovní večer, takže řekněme, že do půlnoci by mohla být první hodina finální.
Druhá hodina je horší, ale tento víkend mám na to rezervovaný celý, takže myslím, že pokud Roman dá dohromady slíbený dataset, tak bych s tím měla hodně pohnout.
Jinak v Praze jsme teď vyhlásili pauzu (FIT je zavřený, CZ.NIC nám to taky zrušil), takže ML tento čtvrtek nebude. Pokud se bude vyučovat online, tak asi budeme lobovat za posuntí ML na později. Hodně jsme se soustředili na interaktivitu a chtěli jsme tu hodinu vést co nejvíc formou diskuze, v tuhle chvíli nejsme úplně smířený s tím, že ta hodina bude probíhat asi úplně jinak ...
Jsem předpokládala, že vám to tenhle čtvrtek otestujeme, ale vypadá to, že pokusný králík je teď Ostrava.
Ad domácí úkoly: po první hodině by měli dostat "Romanův dataset", kde by měli rozmyslet predikci ceny bytu (jenom teoreticky, které sloupečky použít, co je vstup, co výstup, co udělaj s kategorickými proměnnými, jakou použijou metriku, co by mohli vzít jako baseline, atd) ... na začátku druhé hodiny by se na tom vysvětlila syntaxe scikitlearn (což je pár funkcí)
Po druhé hodině jsme jich chtěli vyhlásit cosi jako soutěž, t.j. dát jim data + testovací množinu bez výstupních hodnot a nechat jim to do konce kurzu, kdo najde nejlepší řešení (měřeno na těch testovacích datech). Medaile máme :)
Asi by bylo nejjednodušší vytvořit novej PR, kde bude jen ta první hodina a tohle pak zavřít. :question:
@frenzymadness, @janpipek, kdokoli, mrkněte na regression_metrics, přidali jsme tam "ukázku"
jinak tenhle soubor s metikama se na hodině asi ani nemusí ukazovat, mělo by se to všechno tak nějak říci během toho, co tu metriku budou samy vymýšlet v tom příkladu s krajinou (to že kodovani metriky zabere moc času, bychom řešili tak, že budou říkat návrhy a kouč to naprogramuje na tabuli - ony si to opíšou) - tenhle soubor pak můžou projít doma + je to teda na to samostudium
Asi by bylo nejjednodušší vytvořit novej PR, kde bude jen ta první hodina a tohle pak zavřít. question
Asi by to bylo přehlednější i z pohledu review.
jinak tenhle soubor s metikama se na hodině asi ani nemusí ukazovat, mělo by se to všechno tak nějak říci během toho, co tu metriku budou samy vymýšlet v tom příkladu s krajinou (to že kodovani metriky zabere moc času, bychom řešili tak, že budou říkat návrhy a kouč to naprogramuje na tabuli - ony si to opíšou) - tenhle soubor pak můžou projít doma + je to teda na to samostudium
Pokud je něco jako bonus na hodinu (pokud se stihne) nebo na doma, tak se to dá jako bonus označit přímo v plánu kurzu. Stejně jako je označeno a/nebo u začátečníků: https://github.com/PyLadiesCZ/naucse.python.cz/blob/autumn2019/runs/2019/pyladies-ostrava-podzim/info.yml#L60
Jdu si zkusit pořádne projít první hodinu krok za krokem a dám vědět. V testování v Ostravě nevidím problém.
Intro
np.isnan
. Teď mi došlo, že cílem asi bylo použít operace nad celými pd.Series a pak vrátit nějaký průměr nebo tak. Já jsem na to šel pomocí cyklu for se zip(y_true, y_pred), což mi umožnilo nechat si vypsat výsledek pro každou hodnotu zvlášť, ale musel jsem přidat přeskočení nulových hodnot.K lekci regression_exercises
df
.Regresní metriky
K Resume nemám co dodat, napsáno velmi hezky.
Super! Díky moc!
Navrhuji tedy poupravit první lekci podle připomínek (tam, kde se shodneme) a otevřít nový PR jen s první lekcí. A po víkendu můžeme udělat to samé s druhou lekcí.
Napsat vlastní funkci na metriku společně po diskusi je dobrý nápad. Jen bych do mustru doplnil > podmínku, která ignoruje chybějící hodnoty. Což bude potřebovat import numpy, pokud by se mělo > použít np.isnan. Teď mi došlo, že cílem asi bylo použít operace nad celými pd.Series a pak vrátit nějaký průměr nebo tak. Já jsem na to šel pomocí cyklu for se zip(y_true, y_pred), což mi umožnilo nechat si vypsat výsledek pro každou hodnotu zvlášť, ale musel jsem přidat přeskočení nulových hodnot.
Numpy jsme se snažili vyhnout. Ty NaN hodnoty jsou tam trochu blbý, předpokládá se něco jako
diff = (y_true - y_pred)**2
return diff.mean()
Na hodině to asi stejně bude psát kouč na tabuli, ale samoukům teda zkusím přidat nějaký hint, aby se do toho kvůli těm nan hodnotám zbytečně nezamotali.
Možná bych zmínku o trénovací/testovací množině přesunul na začátek, aby bylo naprosto jasné, že krabičky trénujeme jen a pouze se znalostí puntíků v grafu, ale testujeme je na místech, >kde jsou v grafu svislé čáry. Když si představím, jak bych to vysvětloval, tak bych se této poznámce > nevyhnul, abych to udělal co možná nejvíce přímočaré a jasné.
Ono by se toho měli dobrat už u úkolu 1, že nějaké body stranou jsou potřeba. Akorát jsme nechtěli, aby to tam viděli napsaný, ale mohli si na to přijít sami. Rozmyslím.
K lekci regression_exercises
Tohle má být také jako bonusový materiál? Přijde mi, že na hodině bych raději rozebral jeden konkrétní příklad více do hloubky (třeba tu predikci populace v závislosti na rozloze) nebo koumal > možnosti různých modelů pro různá vstupní data. Nevím, jestli bude prostor na obojí. Nicméně pro > jednoduchost bych klidně vložil tu predikci populace přímo do notebooku regression exercises na konec a buď na tento konkrétní příklad zbude po diskusi nad otázkami čas a nebo se jim to nechá > na doma. Co si o tom myslíte?
Bylo to myšleno na hodinu, jako podklad pro diskuzi - je fakt, že asi bude problém stihnout všechno.
Obecně dává smysl před commitem restartnout kernel a spustit všechny buňky znovu, aby se otestovalo, že na sebe navazují a nejsou v nich chyby, které se náhodným spouštěním neprojeví.
Nemám před commitem z těch notebooků taky mazat metadata nebo to neva? Nemám s tím zkušenost.
Chápu správně, že u predikce populace má být následně ukázáno lepší řešení, které použije train_test_split a tím se zajistí lepší rozložení trénovacích a testovavích dat?
Ano.
V Ostravě jsme v rámci EDA neměli data o počasí, ale to asi není problém. Chceme někde v nějaké podobě mít i odpovědi na otázky z notebooku exercises? Přeci jen pokud to bude zkoumat > samouk, tak se pak nemusí mít koho zeptat na správnost svých úvah.
Ano, pro samouky to není ready. K tomuhle je potřeba ještě jeden ntb/mb s nějakými vzorovými odpovědmi a vysvětlením.
Podobně s tím úkolem 0. Chtěli jsme na začátku, aby nám řekli, co vlastně už ví a co si pod ML sami představují. Takže je tam jen ta otázka. Pro samouky by to ale chtělo, aby tam k tomu asi pár vět bylo.
Ostatní všechno souhlas, upravím a vyrobím nový PR (snad dnes).
Takže všechny komentáře jsou tam zohledněny. Jediný co jsem neudělala je to začlenění odhadu populace rovnou do ntb s příklady /jste si asi všimili, že ráda zakládám nový soubory a adresáře ;)/. Ale je to jedno, můžem to tam ještě dát (stejně ale budou muset stáhnout ten soubor s daty).
Jdu udělat novej PR, tohle pak možno zavřít.
Zavírám. Vše rozděleno do dvou nových PR (ML first lecture #84 a ML second lecture (pre-PR) #85)
je to work in progress, dávám PR kvůli umožnění reviewNB
(sem to dala omylem do pyvce, tady uz je to snad spravne)