Przedmiot obowiązkowy na II stopniu studiów magisterskich uzupełniających na kierunku Informatyka, specjalność Technologie Przetwarzania Danych
Celem przedmiotu jest zapoznanie studentów z podstawowymi technikami eksploracji danych i odkrywania wiedzy w bazach danych. Podczas laboratoriów studenci implementują i testują różne algorytmy eksploracji danych (określanie ważności atrybutów, odkrywanie cech, odkrywanie asocjacji, klasyfikacja, analiza skupień, regresja) oraz ćwiczą proces odkrywania wiedzy w bazach danych. Główny nacisk położony jest na ćwiczenia praktyczne, studenci poznają istniejące narzędzia służące do eksploracji danych (Orange Data Mining, Rapid Miner, KNIME), jak i implementują własne rozwiązania przy użyciu języka Python (scikit-learn). W ramach laboratoriów studenci poznają także najważniejsze języki programowania w świecie data science : R i Pythona.
Znajomość podstawowych pojęć z zakresu statystyki, umiejętność napisania i uruchomienia prostego programu w Pythonie
Program zajęć laboratoryjnych obejmuje następujące zagadnienia:
wstępne przetwarzanie danych
określanie ważności atrybutów
reguły asocjacyjne
podstawy metod klasyfikacji
naiwny klasyfikator Bayesa
drzewa decyzyjne
algorytmy z rodziny Support Vector Machines
meta-algorytmy klasyfikacji
Data Mining : kurs prowadzony przez Jiaweia Hana i Johna C. Harta, niekwestionowane autorytety w dziedzinie eksploracji danych. Kurs koncentruje się na wyszukiwaniu wzorców i technikach eksploracji tekstu. W ramach wykładów można zapoznać się z algorytmami odkrywania reguł asocjacyjnych, sekwencji czy wzorców w grafach, oraz podstawowymi pojęciami z dziedziny
information retrieval i
text mining. Osobny moduł poświęcony jest algorytmom analizy skupień (
cluster analysis).
Data Science : głównymi osobami stojącymi za tym kursem są Jeff Leek i Roger Peng. Tytuł specjalizacji jest dość ogólny, poszczególne kursy w ramach specjalności dotyczą różnych aspektów analizy danych, od wizualizacji, poprzez analizę statystyczną, na prezentacji skończywszy. Wszystkie ćwiczenia i zadania w ramach specjalizacji są realizowane w języku R, i jest to także dobra okazja do opanowania tego języka. Gdybym miał sugerować poszczególne kursy, to w kolejności od najbardziej wartościowego byłyby to:
Mining Massive Datasets : autorami kursu są najlepsi specjaliści ze Stanfordu: Jeff Ullman, Jure Leskovec i Anand Rajaraman. Kurs jest niejako uzupełnieniem tego, o czym rozmawiamy w trakcie laboratoriów z eksploracji danych, ponieważ koncentruje się bardziej na technikach dla
big data, takich jak haszowanie czy MapReduce, ale zawiera też wykłady ściśle związane z naszym kursem: drzewa decyzyjne, redukcję wymiarowości, k-NN, SVM. To jest niezwykle przydatny kurs o dużej wartości.
Machine Learning : jeszcze jeden kurs ze Stanfordu, tym razem przygotowany przez Andrew Ng, jednego z najbardziej znanych naukowców w obszarze uczenia maszynowego. Kurs jest bardzo przystępny, niezwykle starannie przygotowany i bardzo ciekawy. Jego jedyną wadą jest użycie w zadaniach języka Octave (zamiast R).
-
Statistics: Making Sense of Data : bardzo przyjazny kurs prowadzony przez dwójkę młodych naukowców z University of Toronto. W prosty i przystępny sposób przedstawiają podstawowe pojęcia związane ze statystyką, testy statystyczne, próbkowanie, przedziały ufności, itp.
Learning from Data : kurs z Caltechu, niestety, nie zdążyłem jeszcze obejrzeć wykładów i nie potrafię wypowiedzieć się na temat jakości tego kursu, natomiast lista tematów jest bardzo zbieżna z programem przedmiotu “Eksploracja danych”.
Awsome Machine Learning : lista
wszystkich środowisk programistycznych umożliwiających implementację metod eksploracji danych i uczenia maszynowego
-
QuickML : biblioteka do uczenia maszynowego w Javie
-
-
-
W trakcie laboratoriów będą wykorzystywane następujące programy:
24.03.2019 Spotkanie 1
18.05.2019 Spotkanie 2
15.06.2019 Spotkanie 3
Obecność na jednej jednostce laboratoryjnej daje 2 pkt.. W trakcie semestru pojawi się kilka opcjonalnych zadań do wykonania za 5pkt. Pod koniec semestru pojawi się projekt zaliczeniowy, za który będzie można otrzymać maksymalnie 30 pkt.
Rozwiązania zadań samodzielnych należy przesyłać na adres Mikolaj.Morzy@put.poznan.pl do dnia 16.06.2019. W przypadku rozwiązań wykorzystujących notatniki/Pythona należy przesłać notatnik w wersji *.pdf i *.ipynb, w przypadku rozwiązań wykorzystujących RapidMiner/Orange Data Mining należy przesłać plik *.pdf ze zrzutami ekranu i krótkim komentarzem.
Realizacja projektu zaliczeniowego nie jest obowiązkowa. Termin nadsyłania rozwiązań mija w niedzielę, 30 czerwca 2019.
Aktualna punktacja
Kryteria oceny są następujące:
ndst: 0-15
dst: 16-25
dst+: 26-30
db: 31-45
db+: 46-50
bdb: 51-