Spis treści

Wprowadzanie do Data Mining

Laboratorium w semestrze letnim 2021/22 odbywa się we wtorki w godz. 13-15 w Pk1 WFAiIS.

Strona kursu w Moodle: https://moodle.umk.pl/WFAIIS/course/view.php?id=40

Zaliczenie zajęć

Zaliczenie zajęć odbywa się na podstawie rozwiązań zadań z laboratoriów.
Rozwiązania, w postaci notatników Jupyter (pliki *.ipynb), należy terminowo deponować na stronie kursu w Moodle.
W celu uzyskania zaliczenia należy rozwiązać min. 50% zadań.

Rozwiązanie muszą być wykonane samodzielnie. Nie jest dozwolone udostępnianie rozwiązań innym osobom

Literatura

Plan

  1. Przegląd metod Data Mining
  2. Nie za długi wstęp do python, jupyter, numpy, pandas, matlibplot, scikit-learn, seaborn
  3. Analiza statystyczna danych, wizualizacja danych
    • preprocessing: wykrywanie anomalii, braki w danych, dane odstające
  4. Regresja
    • Liniowa oraz wielomianowa
    • problem przeuczenia: underfitting/overfitting
  5. Klasyfikacja i ocena klasyfikatorów
    • regresja logistyczna
    • kNN
    • drzewa decyzyjne
    • SVM
    • walidacja krzyżowa (cross validation)
  6. Analiza skupień
    • k-means
    • metody hierarchiczne, dendrogramy
    • DBSCAN
  7. Text mining
    • worek słów (BOW)
  8. Przetwarzanie obrazów
    • PCA do kodowania obrazów
  9. Analiza szeregów czasowych (?)

Środowisko pracy

Zajęcia realizowane są w języku Python z wykorzystaniem notatników Jupyter. W celu realizacji zadań można zainstalować na swoim komputerze środowisko programistyczne lub skorzystać z usług sieciowych umożliwiających edycję i uruchamianie notatników (Google Colab). Python oraz jupyter-notebook dostępne są również na serwerze studenckim polon7.fizyka.umk.pl

Google Colab lub Binder (zalecane)

Lokalnie na własnym sprzęcie

Notatniki z zajęć można uruchamiać lokalnie na własnych komputerach. Należy w tym celu skonfigurować środowisko Python i Jupyter Notebook lub JupyterLab Wygodnie w tym celu użyć gotowej dystrybucji Anaconda, która zawiera Pythona, Jupyter oraz wiele przydatnych pakietów.

Serwery wydziałowe

Notatniki można również uruchamiać korzystając z serwera polon7 dostępnego w sieci lokalnej WFAiIS. Dostęp z zewnątrz sieci LAN wymaga aktualnego certyfikatu OpenVPN. Pracę można wówczas wykonywać w środowisku graficznym po zalogowaniu za pomocą VNC. Istnieje też możliwość przekierowania komunikacji z usługi jupyter uruchomionej na serwerze polon7 poprzez tunel połączenia ssh tak aby notatnik obsługiwany był na lokalnej maszynie.

Workflow 1: polon7 + VNC

Uruchomienie serwera VNC na polon7

  1. logujemy się do terminala serwera polon7 za pomocą ssh
  2. uruchamiamy serwer vncserver (przy pierwszym uruchomieniu ustalamy hasło do pulpitu)
    $ vncserver
  3. zapamiętujemy podany adres i numer pulpitu. Adres powinien być postaci polon7.fizyka.umk.pl:3

Uruchomienie notatników na pulpicie VNC

  1. za pomocą klienta VNC (np. vncviewer) logujemy się do sesji w trybie graficznym używając adresu uzyskanego przy uruchamianiu serwera VNC (np. polon7.fizyka.umk.pl:3) oraz ustawionego wówczas hasła
  2. pobieramy repozytorium git
    $ git clone https://github.com/IS-UMK/WDM_2022/
  3. przechodzimy do katalogu z notatnikami i uruchamiamy usługę jupiter
    $ jupyter-notebook

Workflow 2: polon7 + przekierowanie usługi przez ssh

Procedura przekierowania usługi jupyter z użyciem Putty: Remote jupyter notebooks with ssh port forwarding

  1. logujemy się za pomocą ssh do serwera polon7 z przekierowaniem portu
    $ ssh -L 8888:localhost:8888 user@polon7.fizyka.umk.pl
  2. klonujemy repozytorium
    $ git clone https://github.com/IS-UMK/WDM_2022/
  3. z katalogu repozytorium uruchamiamy usługę hostującą notatniki bez otwierania przeglądarki
    $ jupyter-notebook --no-browser --port 8888

    Domyślnie notatnik uruchamia się na porcie 8888. W przypadku, gdy port ten jest zajęty należy wybrać inny, pamiętając o odpowiedniej modyfikacji opcji -L wcześniejszego polecenia ssh (-L port:localhost:8888')

  4. na lokalnym komputerze w przeglądarce przechodzimy pod adres http://localhost:8888

Laboratoria (notatniki)

Lab. WDM 2025

Lab 1. Wprowadzenie do Python i Jupyter

Moodle: Zadanie 1
GitHub: wdm_lab_01

Lab 2. Numpy i matplotlib

Moodle: Zadanie 2
GitHub: wdm_lab_02

Lab. 3 Pandas i Seaborn

Moodle: Zadanie 3
GitHub: wdm_lab_03

Lab. 4 Preprocessing

Moodle: Zadanie 4
GitHub: wdm_lab_04

Lab. 5 Regresja

Moodle: Zadanie 5
GitHub: wdm_lab_05

Lab. 6 Klasyfikacja

Moodle: Zadanie 6
GitHub: wdm_lab_06

Kilka przydatnych odnośników