6. Strojové učení: výběr klasifikátoru

V této úloze si vyzkoušíte, jak vybrat optimální klasifikátor v různých situacích.

  • Termín odevzdání úlohy je v BRUTE. Tamtéž se i odevzdává.
  • Budete pracovat s těmito daty: classif_result_tables.zip
  • Předpokládáme, že k řešení úlohy použijete Python.

Co odevzdat a hodnocení

Odevzdávejte ZIP archiv se dvěma soubory:

  • PDF s reportem obsahujícím řešení níže uvedených částí
  • Pythonský skript související s částí Hlavně bezpečně

Report by měl být rozhodně kratší než dvě strany A4. Doporučená délka reportu je jedna strana A4.

Hodnocení bude uděleno na základě PDF reportu v závislosti na optimalitě řešení a kvalitě zdůvodnění zvoleného řešení. [0–5 bodů]

Zadání

Při řešení praktických úloh strojového učení máme často k dispozici více klasifikátorů a musíme se rozhodnout, který je nejvhodnější pro danou úlohu. V ZIP balíčku (viz výše) jsou datové soubory, s nimiž budete při řešení úlohy pracovat.

Mějme 5 různých natrénovaných binárních klasifikátorů. Výsledek klasifikace každého z klasifikátorů je závislý na hodnotě parametru $\alpha$ a lze jej tedy vyjádřit jako funkci $C(\bf x, \alpha) \in \{0,1\}$, kde $\bf x$ je vektor popisující objekt, který chceme klasifikovat.

Všechny klasifikátory jsme aplikovali na testovací množinu $X = \{{\bf x}_0, {\bf x}_1, \dots, {\bf x}_{99} \}$. Zároveň jsme vyzkoušeli všechny přípustné hodnoty parametru $\alpha\in\{\alpha_0, \alpha_1, \dots, \alpha_{49}\}$. Pro klasifikátor $i\in\{1,2, \dots,5\}$ dostane tabulku s hodnotami $C_i(\bf x_j,\alpha_k)\in \{0,1\}$, kde $j \in \{0, 1,.., 99\}$, $k \in \{0, 1,.., 49\}$ (soubory C1.dsvC5.dsv). Dále máme k dispozici skutečnou třídu vzorků $\bf x_0, \bf x_1, \dots, \bf x_{99}$ z testovací množiny (soubor GT.dsv).

1. Výběr vhodného parametru

V této části předpokládejme, že klasifikátory slouží k binární klasifikaci obrázků (např. jestli je na obrázku pes). Pro klasifikátor 1 (soubor C1.dsv) určete, která hodnota parametru $\{\alpha_0, \alpha_1, \dots, \alpha_{49}\}$ je nejvhodnější. Uvědomte si, že zatím nevíte, pro jakou konkrétní úlohu bude daný klasifikátor použit, a proto je nutné použít dostatečně obecnou úvahu. Tedy použitá úvaha by neměla použití klasifikátoru eliminovat na jednu konkrétní úlohu.

V PDF reportu vaší volbu parametru zdůvodněte (užijte pojmy jako např. sensitivita, falešně pozitivní, ROC křivka atd.). Do reportu také vykreslete ROC křivku a na této křivce znázorněte bod, který odpovídá optimální hodnotě parametru $\alpha$.

2. Přísně tajné!

Nyní si představte, že jste agent/ka 00111 a chcete k zabezpečení velmi tajných dokumentů použít svůj otisk prstu. Jedná se o velmi citlivá data, takže pokud nebudou kvalitně zabezpečena, tak bude lepší je zničit. K odemčení dat je vždy dostatek času. K dispozici máte 5 natrénovaných klasifikátorů (s různými hodnotami parametru $\alpha$). Vstupem klasifikátoru (vektor $\bf x$) je sken otisku prstu a v případě, že se jedná o váš otisk prstu, tak požadovaným výstupem klasifikátoru je hodnota 1 (dojde k odemčení dat), jinak hodnota 0. Všechny klasifikátory byly otestovány na testovací množině $X$ pro všechny hodnoty parametru $\alpha$. Výsledky testu pro jednotlivé klasifikátory jsou uloženy v souborech C1.dsvC5.dsv (viz výše). K dispozici je také skutečná příslušnost jednotlivých otisků prstů (viz GT).

Vyberte vhodný klasifikátor a jeho parametr $\alpha$.

V PDF reportu uveďte svoji volbu a vysvětlete, podle jakých kritérií byla provedena.

3. Hlavně bezpečně

Tato část navazuje na předchozí část Přísně tajné! Váš kolega, také agent, se nabídne, že vám poskytne svůj klasifikátor, který je opět závislý na parametru $\alpha$. Protože není jisté, jestli se nejedná o dvojitého agenta, tak bude dobré nejdříve zjistit, jestli je klasifikátor lepší než klasifikátor vybraný v předchozí části.

Z bezpečnostních důvodů bude muset rozhodnutí provést předem vytvořená funkce. Vstupem funkce bude tabulka C6 uložená v souboru C6.dsv, který v tuto chvíli nemáte k dispozici. Soubor bude mít stejný formát, jako soubory C1.dsvC5.dsv. Výstupem funkce bude rozhodnutí, zda je nový klasifikátor lepší než ten z předchozí části (True, pokud je klasifikátor lepší, jinak False).

V PDF reportu vysvětlete, podle jakých kritérií se bude funkce rozhodovat, a odevzdejte také funkci, která tuto úlohu řeší (soubor .py se může jmenovat libovolně, ale odevzdejte v ZIPu jen jeden).

courses/b3b33kui/semestralni_ulohy/6_ml_vyber/start.txt · Last modified: 2023/04/29 18:01 by xposik