Wstęp do Data Mining

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

Warunki zaliczenia zajęć:

  • zadania z laboratorium: warunkiem zaliczenia zajęć jest rozwiązanie co najmniej 6 zadań z laboratorium.
    Rozwiązania zadań, w postaci notatników Jupyter (pliki *.ipynb), należy terminowo deponować na stronie kursu w Moodle lub w prywatnych repozytoriach GitHub utworzonych poprzez adresy podane na stronie kursu Moodle. Zadania przewidziane są do realizacji w czasie trwania laboratorium. Możliwe jest dokończenie zadań po zajęciach i przesłanie rozwiązania w terminie do końca tygodnia, w którym odbyły się zajęcia. Zadania przesłane po tym terminie nie będą oceniane.
  • projekt zaliczeniowy:
    uzyskanie oceny dobrej z plusem lub bardzo dobrej, oprócz wykonania zadań z laboratorium, wymaga zrealizowania projektu w postaci aplikacji lub notatnika Jupyter demonstrującego zastosowanie wybranych metod Data Mining w praktycznych zagadnieniach. Termin wykonania projektu do 30 maja 2025 r.
    Propozycje tematów projektów

Uwaga: rozwiązanie zadań muszą być wykonane samodzielnie. Nie jest dozwolone udostępnianie rozwiązań innym osobom do skopiowania oraz wykorzystywanie narzędzi AI do generowania rozwiązań

  • Robert Layton, Learning Data Mining with Python, 2015 (2017 wydanie 2) - dostęp on-line z biblioteki z sieci UMK
  • Pang-Ning Tan, Michael Steinbach, Anuj Karpatne, Introduction to Data Mining (Second Edition), WWW
  • Sebastian Raschka, Machine Learning with PyTorch and Scikit-Learn, machine-learning-book
  1. Nie za długi wstęp do python, jupyter, numpy, pandas, matlibplot, scikit-learn, seaborn
  2. Analiza statystyczna danych, wizualizacja danych
    • preprocessing: wykrywanie anomalii, braki w danych, dane odstające
  3. Regresja
    • Liniowa oraz wielomianowa
    • problem przeuczenia: underfitting/overfitting
  4. Klasyfikacja i ocena klasyfikatorów
    • regresja logistyczna
    • kNN
    • drzewa decyzyjne
    • SVM
    • walidacja krzyżowa (cross validation)
  5. Analiza skupień
    • k-means
    • metody hierarchiczne, dendrogramy
    • DBSCAN
  6. Text mining
    • worek słów (BOW)
  7. Przetwarzanie obrazów
    • PCA do kodowania obrazów

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

Laboratoria realizowane są w języku Python z wykorzystaniem notatników Jupyter. Na pracowni komputerowej dostępna jest dystrybucja Anaconda (zalecane środowisko na zajęciach) zawierająca wszystkie niezbędne biblioteki i narzędzia. Możliwe jest również wykorzystanie usług umożliwiających edycję i uruchamianie notatników w chmurze, jak Google Colab lub Binder.

Praca lokalna w środowisku Anaconda (na pracowni lub własnym komputerze)

  1. Utwórz prywatne repozytorium GitHub za pomocą adresu aktywującego podanego w Moodle
    https://moodle.umk.pl/mod/assign/index.php?id=8128
  2. Sklonuj repozytorium GitHub na swój komputer
  3. Otwórz wiersz poleceń Anaconda i przejdź do lokalizacji repozytorium
  4. Uruchom serwer Jupyter poleceniem
    jupyter-notebook

    lub

    jupyter-lab
  5. Po wykonaniu zadań zapisz notatnik (PlikZapisz)
  6. Wyślij rozwiązanie (plik notatnika .ipynb) do repozytorium w GitHub lub umieścić notatnik w Moodle

Google Colab (lub Binder)

Google colaboratory umożliwia zapis notatników do prywatnych repozytoriów GitHub, usługa Binder umożliwia wyłącznie import publicznych repozytoriów GitHub.

  1. Utwórz prywatną kopię repozytorium z notatnikiem poprzez link podany w Moodle
    https://moodle.umk.pl/mod/assign/index.php?id=8128
  2. Uruchom notatnik w Google Colab klikając
  3. Po wykonaniu zadania zapisz notatnik w repozytorium GitHub
    PlikZapisz notatnik w usłudze GitHub
    lub pobierz notatnik z Google Colab PlikPobierzPobierz plik IPYNB i umieść ten plik w Moodle.
  • Google Colab (zalecane)
    • dostęp do GPU
    • wymagane konto Google i autoryzacja
    • edytowane notatniki można zapisać na Dysku Google lub w GitHub (także w prywatnych repozytoriach)
    • sesja aktywna dopóki jest otworzona w przeglądarce (max. 12h.)
    • tylko CPU, min. 1GB RAM
    • nie wymaga autoryzacji
    • brak możliwości zachowania zmian pomiędzy sesjami
    • sesja do 6 h., przerywana gdy brak aktywności przez 10 min
    • często długotrwała procedura konfiguracji i niestabilna praca (brak zapisu może powodować utratę danych)