Wstęp do Data Mining

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

Zaliczenie zajęć

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 zgłaszania projektów do 1 czerwca 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ń

Literatura

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, https://github.com/rasbt/machine-learning-book/

Plan

Nie za długi wstęp do python, jupyter, numpy, pandas, matlibplot, scikit-learn, seaborn

Analiza statystyczna danych, wizualizacja danych

preprocessing: wykrywanie anomalii, braki w danych, dane odstające

Regresja

Liniowa oraz wielomianowa

problem przeuczenia: underfitting/overfitting

Klasyfikacja i ocena klasyfikatorów

regresja logistyczna

kNN

drzewa decyzyjne

SVM

walidacja krzyżowa (cross validation)

Analiza skupień

k-means

metody hierarchiczne, dendrogramy

DBSCAN

Text mining

worek słów (BOW)

Przetwarzanie obrazów

PCA do kodowania obrazów

Laboratoria: notatniki i zadania

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

Lab. 7 Ocena klasyfikacji
Moodle: Zadanie 7
GitHub: wdm_lab_07

Lab. 8 Analiza skupień
Moodle: Zadanie 8
GitHub: wdm_lab_08

Lab. 9 Analiza tesktu
Moodle: Zadanie 9
GitHub: wdm_lab_09

Lab. 10 Redukcja wymiarowości
Moodle: Zadanie 10
GitHub: wdm_lab_10

Środowisko pracy

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)

Utwórz prywatne repozytorium GitHub za pomocą adresu aktywującego podanego w Moodle
https://moodle.umk.pl/mod/assign/index.php?id=8128

Sklonuj repozytorium GitHub na swój komputer

Otwórz wiersz poleceń Anaconda i przejdź do lokalizacji repozytorium

Uruchom serwer Jupyter poleceniem

jupyter-notebook

lub

jupyter-lab

Po wykonaniu zadań zapisz notatnik (Plik -> Zapisz)

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.

Utwórz prywatną kopię repozytorium z notatnikiem poprzez link podany w Moodle
https://moodle.umk.pl/mod/assign/index.php?id=8128

Uruchom notatnik w Google Colab klikając

Po wykonaniu zadania zapisz notatnik w repozytorium GitHub
Plik -> Zapisz notatnik w usłudze GitHub
lub pobierz notatnik z Google Colab Plik -> Pobierz -> Pobierz 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.)

MyBinder

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)

Kilka przydatnych odnośników

Python is a programming language that lets you work quickly and integrate systems more effectively

www.learnpython.org

jupyter The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.

Jupyter Notebook for Beginners: A Tutorial

NumPy NumPy is the fundamental package for scientific computing with Python

NumPy tutorial

Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool

10 minutes to pandas

Using Pandas and Python to Explore Your Dataset by Reka Horvath

scikit-learn Simple and efficient tools for predictive data analysis

matplotlib comprehensive library for creating static, animated, and interactive visualizations in Python.

Matplotlib tutorial for beginner by Nicolas P. Rougier

seaborn: statistical data visualization

Python Seaborn Tutorial For Beginners by Karlijn Willems

Visualization with Seaborn from Python Data Science Handbook by Jake VanderPlas