Wprowadzanie do Data Mining

Laboratorium w semestrze letnim 2020/2021 odbywa się zdalnie za pośrednictwem platformy Moodle.

termin zajęć: środa godz. 12:15-13:45

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. Samodzielnie wykonane 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ń.

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

Plan

Przegląd metod Data Mining

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

Preprocessing, analiza statystyczna danych, wizualizacja danych

wykrywanie anomalii, braki w danych, dane odstające

Regresja

Liniowa oraz wielomianowa

problem przeuczenia: underfitting/overfitting

Klasyfikacja i ocena klasyfikatorów

kNN

drzewa decyzyjne

SVM

kroswalidacja

Analiza skupień

k-means

Text mining

Przetwarzanie obrazów

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 edycje 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)

Google Colab

maszyna wirtualna w chmurze

wymagane konto Google

notatniki przechowywane na Dysku Google

Notatniki można tez uruchomić w Binder, nie wymaga założonego konta

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.

Installing the classic Jupyter Notebook interface

JupyterLab

Serwery wydziałowe

Notatniki można również uruchamiać korzystając z serwera polon7. Dostęp z zewnątrz sieci LAN wymaga aktualnego certyfikatu OpenVPN. Usługę notatnika można uruchomić w środowisku graficznym logując się za pomocą VNC lub w terminalu (np. Putty) bez uruchamiania przeglądarki (opcja --no-browser) i tunelując transmisję z portu notatnika (domyślny port to 8888) do lokalnej maszyny.

Przy logowaniu na serwer via ssh można przetunelować port, na którym Jupyter hostuje notatnik (domyślnie 8888') tak aby możliwe było wyświetlenie wyników w przeglądarce internetowej. Polecenie, które tuneluje usługę działającą na porcie 8888 na serwerze polon7 i wystawią ja lokalnie na porcie 8888

ssh -L 8888:localhost:8888 user@polon7.fizyka.umk.pl

Po zalogowaniu przechodzimy do katalogu, w którym znajdują się notatniki.
Notatniki z laboratorium dostępne są w repozytorium GitHub.
Klonowanie repozytorium:

git clone https://github.com/IS-UMK/WDM_2021/

Uruchamianie usługi hostującej notatniki z bieżącego katalogu:

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 zmianie tunelowanego portu przy połączeniu (-L port:localhost:8888').

Następnie w przeglądarce (lokalnie) otwieramy adres http://localhost:8888

Laboratoria (notatniki)

Lab. 1 Wprowadzenie do Python i Jupyter

Lab. 2 NumPy i Matplotlib

Lab. 3 Pandas i Seaborn

Lab. 4 Preprocessing

Lab. 5 Regresja

Lab. 6 Klasyfikacja

Lab. 7 Ocena klasyfikacji

Lab. 8 Analiza skupień

Lab. 9 Analiza tesktu
Lab. 9 Analiza tesktu
Lab. 10 Redukcja wymiarowości

Materiały dostępne w repozytorium GitHub: https://github.com/IS-UMK/WDM_2021

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