DATA MINING


Server discord: https://discord.gg/RD5BY2nn
Fisa disciplinei

Temele de laborator necesita alegerea unui set de date care sa contina atribute numerice si categoriale si sa se preteze unei sarcini de clasificare. Exemple de astfel de seturi:

Analiza va fi realizata in R (este indicata utilizarea RStudio) sau Python (Jupyter notebooks) si rezultatele vor fi prezentate ca "notebooks" ce inglobeaza cod, rezultate, grafice si interpretare a rezultatelor ca secvente de text. Ca mediu de lucru se poate utiliza Google Colab


Task 1: Analiza exploratorie a datelor
Termen limita: saptamana 3

Analiza exploratorie reprezinta primul contact cu datele: se identifica tipul variabilelor, distributia acestora, se cauta posibile dependente intre acestea, se vizualizeaza datele si se cauta posibile valori aberante. Pentru setul de date ales efectuati o analiza exploratorie care sa contina: Materiale utile:

Task 2:Association Rules Mining
Termen limita: saptamana 5



Task 3: Analiza prin clasificare supervizata
Termen limita: saptamana 7

Scopul acestui task este de a lucra cu cei mai populari algoritmi de clasificare supervizata.
Fiecare echipa va lucra cu urmatorii algoritmi de clasare: Fiecare algoritm va necesita o etapa de optimizare empirica a hiper-parametrilor.
Pe baza analizei de la taskul 1 se vor incerca strategii de selectie in maniera filtru ale atributelor dar si strategii de selectie incapsulata.
Modelele dezvoltate trebuie validate si comparate prin procesul de validare incrucisata. Metricile de calitate folosite vor fi: acuratetea - globala, precision si recall la nivelul fiecarei clase. Se va raporta si matricea de confuzie.
In cazul seturilor de date puternic dezechilibrate n ceea ce priveste distributia claselor, se va studia impactul utilizarii tehnicilor de over-sampling.

Mai multe despre tema aici
Task 4: Analiza prin clasificare nesupervizata (clustering)
Termen limita: Saptamana 11

Clasificarea nesupervizata (clustering) are ca scop identificarea de grupuri naturale in date. Exista o larga varietate de tehnici de clasificare nesupervizata, care, depinzand de setul de date supus analizei, partitionaza datele in mod diferit. Scopul acestei teme este de a intelege principiile ce stau in spatele fiecarei metode de clustering si, drept urmare, a alege cea mai potrivita metoda a fi aplicata intr-un context dat.
Seturile de date pe care veti aplica algoritmii contin atat date reale (setul iris) precum si date artificiale ce urmeaza diverse distributii, unele generate special pentru acest laborator. Ultima coloana va fi exclusa inainte de aplicarea algoritmilor, aceasta continand atributul clasa, utilizat doar pentru a evalua calitatea clusterizarii cu indici externi de validare. Seturile de date vor fi descarcate de aici si vor fi vizualizate utilizand grafice simple de tip sctatter plot.
Cele mai multe metode necesita stabilirea prealabila a numarului de grupuri. Exista insa si modalitati de identificare automata precum reprezentarea grafica a unui index numeric in functie de numarul de grupuri urmata de identificarea unui cot pe grafic ("elbow") sau maximizarea unui scor precum Silhouette-Width.
    Metodele de clasificare nesupervizata cu care se va lucra in cadrul acestei teme:
  1. Algoritmii ierarhici: single link, complete link, average link, Ward variance
  2. Algoritmi bazati pe densitate: DBSCAN sau variatii
  3. Algoritmul k-Means
  4. Expectation-Maximization (EM) clustering
  5. Self - organizing maps (SOM)
Intocmiti un raport care sa contina:
  1. Pentru fiecare dintre seturile de date specificati care sunt cei mai potriviti algoritmi pentru a identifica grupurile naturale - asa cum ne apar acestea la o vizualizare a datelor. Se considera numarul de clase cunoscut. Justificati raspunsul. Pentru fiecare partitionare/clusterizare evaluati calitatea acesteia relativ la apartenenta inregistrarilor la clase - care se gaseste pe ultima coloana a seturilor; in acest scop calculati scorul Adjusted rand Index.
  2. Pentru seturile de date iris si 2d-10c identificati automat numarul de grupuri lucrand a) cu algoritmul k-Means si b) cu un algoritm ierarhic. Se va utiliza un index nesupervizat precum Sillouette Width si o metoda vizuala (de tip elbow).
O parte a analizei (ex. task 1) poate fi realizata in WEKA.


Mai multe detalii aici


Task 5:Indentificare outliers
Termen limita: saptamana 13

Utilizati metodele de mai sus (cele univariate si macar trei din cele multi-variate) pentru a identifica outliers pe un set de date ales de aici. In cazul ultimului set, outlierii sunt marcati (etichetati) si se vor raporta scorurile precision si recall . Pentru citirea fisierului de date .mat in R utilizati functia readMat din pachetul R.matlab.


Mai multe detalii aici

Alte materiale utile:
Proiectii neliniare



Ate legaturi utile:
Competitive data science -curs online oferit pe Coursera
Mining of Massive Datasets book

Kaggle in-class competitions
Kaggle sponsored competitions