Laboratorium 10

Uczenie i wybór modelu

Dzisiejszym laboratorium kontynuujemy budowanie spójnego potoku masowego przetwarzania danych. Ostatnio zaimplementowaliśmy mechanizm wektoryzacji wraz z możliwością eksploracji danych.

Dzisiaj zajmiemy się przygotowaniem uczenia oraz wyboru modeli uczenia maszynowego.

Diagram planowanego systemu wygląda następująco:
image

Aktualnie będziemy implementować zakres Etapu III

Zadanie 10.0: przygotowanie środowiska (0 pkt)

Skopiuj potrzebny kod źródłowy z repozytorium zawierającego ostatnie zadanie (Lab 9), będziesz go używać jako bazy pod rozwiązanie poniższych zadań. Lista przygotowana jest pod wykonanie za pomocą pySpark (Scala Spark będzie podobna jeżeli chodzi o nazewnictwo klas), listę można zrealizować zarówno w Pythonie jak i JVM (Scala, Java, Kotlin) z wykorzystaniem Sparka bądź Flinka.

Zadanie 10.1: przygotowanie danych (1 pkt)

Przygotuj kod który pobierze dane z twojej bazy a następnie zapisze jes w formacie CSV (bądź innym który będziesz w stanie wczytać w kolejnych krokach)

Zadanie 10.2: ładowanie i podział danych (2 pkt)

Wczytaj dane za pomocą pySpark oraz dokonaj ich podziału

  • pySparka wykorzystujemy w trybie local, zadbaj o odpowiednią konfigurację

Zadanie 10.3: zbuduj potok przetważania (8 pkt + 2pkt[za dodatkowe atrybuty])

Zbuduj potok przetwarzania który odpowiedni zmodyfikuje twój DataFrame do postaci akceptowanej przez pySpark ML, oraz nauczy model. Umożliwij predykcję dla dowolnego tekstu oraz przeprowadź predykcję na danych testowych. Dokonaj ewaluacji w oparciu o dane testowe. Wykorzystaj miary ewaluacji dla modeli regresji

  • dane musimy sprowadzić do postaci tabeli o kolumnach “features” i “label”

  • na podstawie cech chcemy przewidywać ilość plusów

  • wykorzystujemy LinearRegression

  • możemy wprost wykorzystać zwektoryzowany tekst

  • możemy zwektoryzować dodatkowe cechy za pomocą odpowiednich narzędzi [1, 2, 3] (dodatkowe punkty za dodatkowe atrybuty)

  • dodatkowo możemy rozbudować zwektroryzowany tekst o dodatkowe zwektoryzowane cechy

Zadanie 10.4: dobór parametrów (8 pkt)

Stwórz kolejny potok przetwarząnia który dobierze parametry modelu regresji za pomocą podziału na zbiór uczący i walidacyjny

  • piepline może być traktowany jako estymator, przez co może być przekazany do TrainValidationSplit

  • dokonaj ewaluacji najlepszego modelu na danych testowych

  • dokonaj ewaluacji modelu na danych wprowadzanych “z palca” (tekst jako zmienna w kodzie)