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:
  • wypełnienie karty pracy dziennej : wypełnić quiz dostarczany po każdych zajęciach (3 XP)
  • artykuł w gazecie zakładowej : przeczytać 2 artykuły naukowe i opisać je w krótkiej notce na blogu (10 XP)
  • praca w czynie społecznym : przygotować program rozwiązujący przykładowy problem (10 XP)
  • obecność na zajęciach nie jest wymagana, ale jest nagradzana 2 XP
  • pod koniec semestru wszyscy górnicy otrzymają zadanie indywidualnego fedrowania nowego chodnika, realizacja zadania będzie warta 30 XP.

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 39 parobek 2.0
40 59 gwarek 3.0
60 64 górnik 3.5
65 79 starszy górnik 4.0
80 84 sztygar 4.5
85 ++ nadsztygar 5.0

grupa laboratoryjna 13:30 grupa laboratoryjna 15:10

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
  • eksloracja danych w R (caret)
  • eksloracja danych w Pythonie (scikit-learn)

Bibliografia

książki

UWAGA : absolutnie fantastyczna kolekcja 27 darmowych książek z obszaru eksploracji danych, uczenia maszynowego i predictive analytics : http://www.dataonfocus.com/21-free-data-mining-books/

  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 75 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 75 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 75 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 75 XP.

programowanie

Laboratoria

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


7.03.2018 wstępne przetwarzanie danych

14.03.2018 ocena ważności atrybutów

21.03.2018 odkrywanie reguł asocjacyjnych

4.04.2018 wprowadzenie do klasyfikacji

11.04.2018 naiwny klasyfikator Bayesa

18.04.2018 indukcja drzew decyzyjnych

9.05.2018 maszyny wektorów wspierających

23.05.2018 meta-metody klasyfikacji

30.05.2018 analiza skupień

6.06.2018 ekstrakcja cech

13.06.2018 regresja

Zadania samodzielne

ćwiczenie termin nadsyłania zadanie punkty
drzewa decyzyjne 8.05 drzewo decyzyjne na zbiorze breast cancer 20-10
svm 6.06 SVM na zbiorze heart disease 10-5
meta-klasyfikacja 6.06 przeszukiwanie przestrzeni parametrów na zbiorze ozon layer 15-5
ekstrakcja cech 13.06 klasyfikacja przed i po kompresji przestrzeni cech ozon layer 30-10

Prace magisterskie 2018/19

  Szanowni Państwo,
poniżej zamieszczam krótkie opisy proponowanych przeze mnie tematów prac magisterskich na rok 2018/19. 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

Metoda inkrementalnego utrwalania w uczeniu głębokich sieci neuronowych

W ostatnich latach opracowano wiele ciekawych rozwiązań rozszerzających podstawowy model uczenia głębokich sieci neuronowych. Pojęcia takie jak uwaga (ang. attention), losowa deaktywacja węzłów (ang. dropout), zmienna prędkość uczenia (ang. differentiable learning rates) czy dopasowanie (ang. fint-tuning) stanowią standardowe elementy licznych bibliotek DNN. Celem projektu jest implementacja i eksperymentalna weryfikacja nowej techniki inkrementalnego utrwalania podczas uczenia głębokich sieci neuronowych. 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.

Rozproszona reprezentacja danych w klasycznych problemach uczenia maszynowego

Ogromne postępy poczynione na przestrzeni ostatnich lat w obszarze przetwarzania języka naturalnego (NLP) po części wynikają z upowszechnienia się rozproszonej reprezentacji tekstu (ang. word embeddings). Jednak reprezentacja rozproszona, stanowiąca wynik zastosowania płytkiej architektury enkoder-dekoder w odniesieniu do danych tekstowych, może być też z powodzeniem zastosowana dla danych innych niż tekst, np. do zbiorów elementów (odkrywanie asocjacji), sekwencji (znajdowanie wzorców częstych), danych kategorycznych (klasyfikacja i regresja). Celem projektu jest opracowanie nowatorskich metod rozproszonej reprezentacji dla danych i włączenie tej reprezentacji do klasycznych algorytmów uczenia maszynowego. W ramach projektu zostaną wykorzystane biblioteki NumPy i ScikitLearn, osoba realizująca projekt zdobędzie duże doświadczenie z programowaniem algorytmów uczenia maszynowego oraz zapozna się z nowoczesnymi metodami uczenia sieci neuronowych. Warunkiem koniecznym realizacji projektu jest dobra znajomość języka Python.

Wykorzystanie gradientu energii macierzy w analizie sieci złożonych

Sieci złożone są najczęściej reprezentowane w postaci macierzy, przy czym różne reprezentacje sieci mogą istotnie różnić się formatem i zawartością. Przykładowe reprezentacje sieci obejmują macierz sąsiedztwa, macierz przyległości, Laplasjan, macierz Randicia, macierz odległości. Pojęcie energii macierzy wywodzi się z algebry i oznacza sumę modułów wartości własnych macierzy. Energie macierzy opisujących sieci egocentryczne poszczególnych wierzchołków niosą interesującą informację, a pojęcie gradientu energii może być wykorzystane w wielu algorytmach grafowych, np. w algorytmach wyszukiwania najkrótszych ścieżek lub algorytmach przydziału zasobów do wierzchołków. W ramach projektu przewiduje się przygotowanie zestawu narzędzi programistycznych do pracy z energiami wierzchołków w oparciu o bibliotekę NetworkX, a także wykorzystanie energii wierzchołków do opracowania i implementacji nowatorskiego algorytmu stacjonarnego przydziału zasobów do wierzchołków. Osoba realizująca projekt zdobędzie doświadczenie w obszarze analizy i eksploracji sieci złożonych. Warunkiem koniecznym realizacji projektu jest dobra znajomość języka Python.

Konkurs zaliczeniowy

Zgodnie z obietnicą uruchomiłem konkurs zaliczeniowy na platformie Kaggle. Konkurs trwa do 31 lipca 2018 r, do zdobycia jest maksymalnie 50 punktów. Zbiór uczący i testowy oraz szczegółowe instrukcje znajdują się na stronie konkursu.

Zagadki

Zagadka jest dostępna przez tydzień, do kolejnej środy (godz.13: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 07.03 samotny górnik
2 14.03 egzekucja górników
3 21.03 dwaj synowie
4 28.03 bony towarowe
5 11.04 baniak z wodą
6 18.04 bocian i żaba
7 25.04 szalony górnik
8 23.05 najmniejsza liczba
9 30.05 gra w dwie karteczki
10 06.06 podział skarbu
11 13.06 mrówki
 
start.txt · Last modified: 2018/06/12 14:05 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