Vytvořte 3 jednoduché neadaptivní filtry, paranoidní, naivní a náhodný, a u každého z nich určete, jak kvalitní predikce poskytuje.
Testy ke kroku 4:
Rozmyslete si a načrtněte na kus papíru:
Prostudujte si, jak v OOP funguje a jak se v Pythonu realizuje dědičnost. Informace najdete např.
Úkoly:
simplefilters.py
vytvořte tři třídy představující tři hloupé filtry:
NaiveFilter
, který bude všechny emaily klasifikovat jako OK,
ParanoidFilter
, který bude všechny emaily klasifikovat jako SPAM, a
RandomFilter
, který bude maily náhodně zařazovat do tříd OK a SPAM.
BaseFilter
v modulu basefilter.py
.
K čemu nám to bude:
Abychom umožnili pozdější automatické testování vašeho finálního filtru, budeme vyžadovat, aby se třída vašeho filtru jmenovala MyFilter
a byla umístěna v modulu filter.py
. V tomto kroku ale máte vytvořit 3 třídy pojmenované NaiveFilter
, ParanoidFilter
a RandomFilter
umístěné v modulu simplefilters.py
.
Filtr pro nás bude představován třídou, která bude mít minimálně dvě metody: train()
a test()
. Filtry, které se nebudou učit z dat, budou mít metodu train()
prázdnou. Další struktura třídy je libovolná.
Metoda train()
:
Vstupy | Cesta k adresáři s ohodnocenými emaily, tj. adresář musí obsahovat soubor !truth.txt . (Pro jednoduché filtry je to jedno.) |
---|---|
Výstupy | Nic. |
Efekty | Vytvoření a nastavení vnitřních datových struktur třídy, aby byly později využitelné metodou test() . |
Metoda test()
:
Vstupy | Cesta k adresáři s maily. (Adresář nebude obsahovat soubor !truth.txt .) |
---|---|
Výstupy | Nic. |
Efekty | Vytvoří v zadaném adresáři soubor !prediction.txt . |
Vytvořte jednoduchý skript, který vypočte kvalitu predikcí zvoleného filtru. Skript:
train()
na jedné poskytnuté datové sadě,
test()
na druhé poskytnuté datové sadě,
compute_quality_for_corpus()
pro druhou datovou sadu,
!prediction.txt
z datové sady.