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)
- 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.
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)
Kilka przydatnych odnośników
- Python is a programming language that lets you work quickly and integrate systems more effectively
- 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.
- NumPy NumPy is the fundamental package for scientific computing with Python
- Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool
- 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