Eksploracja danych

Prowadzący

telefon: 61 665 2961

email: Mikolaj.Morzy@put.poznan.pl

Instytut Informatyki Politechniki Poznańskiej, ul. Piotrowo 2, 60-965 Poznań

Miejsce przedmiotu w programie studiów

Przedmiot obowiązkowy na II stopniu studiów magisterskich na kierunku Informatyka, specjalność Technologie Przetwarzania Danych

Cele

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. Główny nacisk położony jest na ćwiczenia praktyczne, studenci poznają istniejące narzędzia służące do eksploracji danych (Weka, Rapid Miner, Project R, Orange Data Mining, scikit-learn), jak i implementują własne rozwiązania przy użyciu języków R i Python. Najważniejszym celem przedmiotu jest jednak zmiana sposobu zdobywania wiedzy poprzez większe zaangażowanie studentów i większą swobodę w akademickim kształceniu.

Sposób zaliczenia przedmiotu

Anatoli Skurikhin
Stakhanovets Kuzbassa, Egor Borisov
Worker at Kuzbass, 1933

Bez pracy nie ma kołaczy. Aby przeżyć, każdy górnik musi pracować. W trakcie każdego tygodnia górnik może wykonać jedną z prac prostych:

  • odbicie karty pracy dziennej : pojawienie się na zajęciach (2 XP)
  • wypełnienie sprawozdania z dnia pracy: wypełnić quiz dostarczany po każdych zajęciach (3 XP)
  • praca w czynie społecznym : przygotować program rozwiązujący przykładowy problem (10 XP)
  • obowiązkowa rywalizacja pracownicza : udział w konkursie na platformie Kaggle (50 XP) lub realizacja przykładowego projektu

W zależności od liczby zdobytych punktów doświadczenia górnik osiąga określony poziom (a co za tym idzie, ocenę):

od XP do XP poziom ocena
0 49 parobek 2.0
50 74 gwarek 3.0
75 79 górnik 3.5
80 104 starszy górnik 4.0
105 109 sztygar 4.5
110 ++ nadsztygar 5.0

grupa laboratoryjna 08:00 grupa laboratoryjna 09:45

Plan laboratoriów

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
  • zaawansowane klasyfikatory: sieci neuronowe, SVM
  • indukcja drzew decyzyjnych
  • meta-metody: boosting, voting, stacking
  • algorytmy analizy skupień
  • odkrywanie cech
  • regresja
  • wprowadzenie do NLP

Bibliografia

książki

UWAGA : świetna kolekcja darmowych książek z obszaru eksploracji danych, uczenia maszynowego i predictive analytics : https://www.kdnuggets.com/2015/09/free-data-science-books.html

  1. Eksploracja danych. Metody i algorytmy, T.Morzy, Wydawnictwo Naukowe PWN 2013
  2. Data Mining: Concepts and Techniques, J.Han, M.Kamber, J.Pei, Morgan Kaufmann, 2005
  3. Handbook of Data Mining and Knowledge Discovery, W.Kloesgen, J.Zytkow, (eds) Oxford University Press, 2002
  4. Introduction to Data Mining , P.Tan, M.Steinbach, V.Kumar, Addison Wesley, 2005
  5. Data Mining: Practical Machine Learning Tools and Techniques, I.Witten, E.Frank, Morgan Kaufmann; 2 edition (June 10, 2005)
  6. Introduction to Data Science, J.Stanton, Syracuse University’s School of Information Studies (darmowy e-book), kod R do przykładów w książce
  7. The LION way: Machine Learning plus Intelligent Optimization, darmowa książka Roberto Battitiego i Mauro Brunato

tutoriale

kursy MOOC

  • 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. Za ukończenie kursu przyznam 50 XP
  • 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). Ukończenie kursu daje 50 XP
  • Statistical Learninig : kurs przygotowany przez Trevora Hastie i Roba Tibshirani, bazujący na ich fantastycznej książce An Introduction to Statistical Learning with Applications in R. W ciemno mogę polecić ten kurs jako jeden z najlepszych dostępnych na rynku. Jego ukończenie daje 50 XP.
  • 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”. Ze wzlgędu na duże obciążenie studentów ukończenie kursu jest warte 50 XP.
  • https://aws.amazon.com/training/learning-paths/machine-learning/data-platform-engineer/ : szkolenie kierowane do inżynierów danych i inżynierów uczenia maszynowego, z silnym naciskiem na środowisko AWS. Jego ukończenie daje 15 XP.
  • https://aws.amazon.com/training/learning-paths/machine-learning/developer/ : szkolenie dla programistów wykorzystujących stos technologiczny Amazon (m.in. chatboty). Jego ukończenie daje 15 XP.
  • Machine Learning for Coders (Fast.AI) : najlepszy na rynku darmowy kurs płytkich metod uczenia maszynowego dla programistów. Jego ukończenie daje 50 XP.
  • Deep Learning part I (Fast.AI) : doskonały kurs dla programistów, błyskawicznie wprowadzający w tematykę sieci neuronowych i uczenia głębokiego (część I). Jego ukończenie daje 25 XP.
  • Deep Learning part II (Fast.AI) : doskonały kurs dla programistów, błyskawicznie wprowadzający w tematykę sieci neuronowych i uczenia głębokiego (część II). Jego ukończenie daje 25 XP.
  • ML crash course : bardzo prosty i podstawowy kurs dla deweloperów przygotowany przez Google, główną zaletą jest wykorzystanie TensorFlow jako głównej platformy. Jego ukończenie daje 15 XP.
  • ML w TensorFlow na GCP : zestaw kursów ML z silnym naciskiem na wykorzystanie narzędzi oferowanych przez GCP. Jego ukończenie daje 15 XP.
  • Machine Learning in Python : dobre wprowadzenie do narzędzi ML dedykowanych dla języka Python. Jego ukończenie daje 15 XP.

programowanie

Laboratoria

W trakcie laboratoriów będą wykorzystywane następujące programy:


11.03.2019 wstępne przetwarzanie danych

18.03.2019 ocena ważności atrybutów

25.03.2019 odkrywanie reguł asocjacyjnych

1.04.2019 wprowadzenie do klasyfikacji

8.04.2019 naiwny klasyfikator Bayesa

15.04.2019 indukcja drzew decyzyjnych

13.05.2018 maszyny wektorów wspierających

20.05.2018 meta-metody klasyfikacji

27.05.2018 analiza skupień

3.06.2018 ekstrakcja cech

Zadania samodzielne

ćwiczenie termin nadsyłania zadanie punkty
reguły asocjacyjne 14.04.2019 system rekomendacyjny filmów 10 XP
drzewa decyzyjne 28.04.2019 przewidywanie powrotu nowotworu 20-10 XP
metody ensemble 2.06.2019 stan powłoki ozonowej 20-10 XP
redukcja wymiarowości 14.06.2019 cukrzyca 15-5 XP

Zagadki

Zagadka jest dostępna przez tydzień, do kolejnej niedzieli (godz.21:00). Spośród górników którzy udzielili poprawnej odpowiedzi losuję jednego górnika która zgarnia tygodniową pulę stawek (5 XP).

losowanie

tydzień zamknięcie odpowiedzi zagadka
1 10.03 samotny górnik
2 17.03 szalony górnik
3 24.03 ślepy bocian
4 31.03 baniak z wodą
5 07.04 synowie
6 14.04 dwie liczby
7 28.04 najmniejsza liczba
8 19.05 bony towarowe
9 26.05 egzekucja
10 02.06 kroki
11 09.06 skarb

Prace magisterskie 2019/20

Szanowni Państwo,

poniżej zamieszczam krótkie opisy proponowanych przeze mnie tematów prac magisterskich na rok 2019/20. Dwa tematy są ściśle związane z eksploracją danych i uczeniem maszynowym, trzeci temat jest związany z analizą i eksploracją sieci społecznościowych (jest to przedmiot, który będę z Państwem prowadził za rok).

W razie pytań lub wątpliwości proszę o kontakt mejlowy.

Mikołaj Morzy

Kolektywne funkcje kosztu w uczeniu głębokich sieci neuronowych

Istotnym elementem każdej architektury głębokich sieci neuronowych jest wybrana funkcja kosztu, której gradient steruje zmianami poszczególnych wag. Większość wykorzystywanych aktualnie funkcji kosztu porównuje indywidualną przewidywaną wartością z wartością referencyjną i na tej podstawie określa wielkość błędu popełnionego przez model. Celem projektu jest zbadanie możliwości rozszerzenia funkcji kosztu o uwzględnienie podczas wyznaczania błędu także najbliższego sąsiedztwa badanej instancji. Dzięki takiemu podejściu końcowa wartość kosztu błędu zależeć może nie tylko od samej wielkości błędu, ale także charakteru instancji, dla której popełniono błąd. Osoba realizująca projekt zapozna się z architekturą wybranej biblioteki DNN (PyTorch lub TensorFlow) oraz z najnowszymi osiągnięciami w obszarze uczenia sieci głębokich oraz rozszerzy ją o nowe rozwiązanie. Istotnym elementem projektu jest eksperymentalna walidacja propozycji. Warunkiem koniecznym realizacji projektu jest dobra znajomość języka Python.

Zadania:

  1. opracowanie i implementacja kolektywnych funkcji kosztu
  2. integracja kolektywnych funkcji kosztu z wybraną biblioteką DNN (TensorFlow, PyTorch)
  3. przeprowadzenie eksperymentów obliczeniowych

Lasy podobieństwa i ich zastosowania w problemach uczenia maszynowego

Las podobieństwa (ang. similarity forest) to alternatywa dla klasycznych algorytmów uczenia maszynowego, takich jak drzewa decyzyjne czy lasy losowe. Las podobieństwa dokonuje podziału przestrzeni obiektów na podstawie porównania obiektów przy pomocy zadanej funkcji podobieństwa. Co istotne, algorytm nie nakłada żadnych ograniczeń na rodzaj funkcji i sposób reprezentacji danych. Celem pracy jest rozszerzenie oryginalnej propozycji lasów podobieństwa na złożone typy danych (drzewa, grafy, zbiory) oraz problemy uczenia maszynowego (regresja, klasyfikacja wieloklasowa, identyfikacja osobliwości). Osoba realizująca projekt dogłębnie pozna pakiet scikit-learn i zdobędzie doświadczenie w klasycznych metodach uczenia maszynowego. Warunkiem realizacji projektu jest dobra znajomość języka Python.

Zadania:

  1. implementacja algorytmu lasów podobieństwa
  2. implementacja wersji algorytmu lasów podobieństwa dla regresji i klasyfikacji jedno-klasowych
  3. przeprowadzenie eksperymentów obliczeniowych

Nowe metody uczenia reprezentacji w sieciach złożonych

Rozproszone reprezentacje danych (ang. embeddings) znalazły dziesiątki zastosowań w różnych obszarach uczenia maszynowego i otworzyły nowe możliwości dla przetwarzania danych tekstowych czy relacyjnych. Pojawiły się także pierwsze propozycje zastosowania takich reprezentacji dla danych sieciowych, np. node2vec czy deepwalk. Celem projektu jest zbadanie właściwości tych reprezentacji w kontekście popularnych zadań eksploracji sieci oraz opracowanie nowych algorytmów uczenia reprezentacji wierzchołków, krawędzi i komponentów dla sieci. Do realizacji projektu konieczna jest dobra znajomość języka Python. Osoba realizująca projekt zapozna się z istniejącymi rozwiązaniami uczenia reprezentacji dla sieci, bardzo dobrze pozna wybrane biblioteki przetwarzania sieci (NetworkX, graph-tool) oraz biblioteki dedykowane dla sieci neuronowych.

Zadania:

  1. opracowanie nowych metod rozproszonej reprezentacji wierzchołków i krawędzi na podstawie własności energii wierzchołków
  2. opracowanie nowej metody rozproszonej reprezentacji komponentów
  3. opracowanie nowej metody rozproszonej reprezentacji dla sieci ze znakiem (ang. signed networks)
  4. przeprowadzenie eksperymentów obliczeniowych
 
start.txt · Last modified: 2019/06/15 12:52 by Mikołaj Morzy
 
Except where otherwise noted, content on this wiki is licensed under the following license:Public Domain
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki