Všeobecné informácie

Anotácia: Študent získa základné poznatky z oblasti spracovania veľkých dát, metód, prístupov a technológií, ktoré sa v tejto oblasti využívajú. Študent nadobudne znalosti o distribuovaných, NoSQL a in-memory databázových systémoch, metódach a technológiách paralelného a distribuovaného počítania. Študent získa základné zručnosti pre návrh a implementáciu aplikácií pre spracovanie veľkých dát.

Podmienky zápočtu:

Prednášky

TýždeňPopisOdkazy/poznámky
1.Úvod do problematiky spracovania veľkých dát stiahnuť PDF
2.Paralelné výpočty CPU, GPU stiahnuť PDF
3.Distribuované databázy a súborové systémy I stiahnuť PDF
4.Distribuované databázy a súborové systémy II stiahnuť PDF
5.Architektúry systémov pre spracovanie veľkých dát I stiahnuť PDF
6.Architektúry systémov pre spracovanie veľkých dát II stiahnuť PDF
7.Technológie spracovania veľkých dát I stiahnuť PDF
8.Technológie spracovania veľkých dát II stiahnuť PDF
9. Technológie spracovania veľkých dát III stiahnuť PDF
10. Distribuované strojové učenie I stiahnuť PDF
11.Distribuované strojové učenie II
12.Prípadové štúdie
13.Prípadové štúdie

Cvičenia

TýždeňPopisOdkazy/poznámky
1.Úvodné cvičenie
2.Úvod do programovacieho jazyka Python I
3.Úvod do programovacieho jazyka Python II
4.----- Konzultácie zadaní -----
5.Práca s dokumentovou databázou MongoDB
6. Test 1 (10 bodov)
7.Spracovanie dát v prostredí Apache Spark I
8.Spracovanie dát v prostredí Apache Spark II
9.Učenie modelov pomocou knižnice MLlib
10. Učenie modelov pomocou knižnice MLlib II
11.Spracovanie prúdov dát pomocou Apache Spark Streaming
12.Konzultácie k zadaniam
13.Test 2 (10 bodov) + odovzdávanie zadaní

Zadanie

Zadanie je skupinové (v skupine môžu byť max. 3 študenti) za 20 bodov.

Úloha

V rámci zadania budete pracovať s dátami, ktoré popisujú záznamy popisujúce dopravné nehody vo Veľkej Británii z obdobia od roku 2005 do 2014. Dáta sú rozdelené do troch súborov:

  • Accidents: dátový súbor obsahujúci informácie o nehodách. Každý záznam reprezentuje jednu nehodu a popisuje rôzne informácie o jej závažnosti, počasí, geolokácii, čase atď.
  • Vehicles: dátový súbor obsahujúci informácie o vozidlách, ktoré sa zúčastnili danej nehody (typ vozidla, motor, veľkosť, údaje o vodičovi atď.)
  • Casualties: dátový súbor obsahujúci informácie o obetiach - závažnosť zranení, vek, pohlavie, atď.

    Dataset nájdete na Datalabe, v adresári datalab/TSVD/dataset/CarAccidents/

    Dáta sú v CSV súboroch. Atribút "Accident_Index" môže byť použitý ako jednoznačný identifikátor nehody, ktorý je možné použiť pre prepojenie informácií o vozidlách, ktoré sa zúčastnili nehody, informácií o samotnej nehode a obetiach. Údaje obsahujúce “-1” sú pre chýbajúce hodnoty, resp. hodnoty mimo rozsah. Hodnoty jednotlivých atribútov sú zakódované, významy jednotlivých hodnôt atribútov nájdete v súbore atributy.xls.

    Všetky kroky zadania musia byť naprogramované v prostredí Apache Spark v jazyku Python.

    Bodové ohodnotenie zadania:

    Integrácia dát (3b)

    • Integrácia datasetu - vhodne zakomponujte zvolené informácie o počasí.
    • Sampling – vytvorenie vzorky z datasetu (veľkosti napr. 10%) pri zachovaní rozloženia cieľového atribútu.
    • Rozdelenie datasetu na trénovaciu a testovaciu množinu (napr. v pomere 60/40).

    Predspracovanie (7b)

    • Transformácia nominálnych atribútov na numerické
    • Transformácia numerických atribútov na nominálne
    • Vypočítanie pomerového kritéria – informačného zisku voči cieľovému atribútu (klasifikačná úloha), pre nominálne atribúty
    • Vypočítanie štatistík pre numerické atribúty
    • Vytvorenie histogramov pre nominálne atribúty
    • Spracovanie chýbajúcich hodnôt (napr. ich nahradenie priemermi, atď.)

    Modelovanie - Vytvorenie popisných modelov (3b):

    • Vytvorte k-means clustering model
    • Pomocou vytvoreného modelu detekujte anomálie

    Modelovanie - Vytvorenie klasifikačných modelov typu (aspoň jeden model každého typu)(4b):

    • Decision tree model
    • Linear SVM
    • Naive Bayes model
    • Ensembles of decision trees (Random Forests, Gradient-boosted trees)

    Vyhodnotenie (3b)

    • Natrénovanie klasifikačného modelu na trénovacej množine a jeho evaluáciu na testovacej množine.
    • Klasifikačný model vyhodnocujte použitím kontigenčnej tabuľky a vypočítaním metrík presnosti, návratnosti, F1 a MCC (Matthews Correlation Coefficient).

    Odovzdávanie zadaní:

    Zadanie je potrebné odovzdať do konca 13. týždňa semestra cez MS Teams.

    Podklady a užitočné zdroje