Analiza i wizualizacja danych 1000-719DAV
Uczestnicy kursu będą mogli poznać najpopularniejsze metody analizy i wizualizacji danych jedno-, dwu- lub wielowymiarowych.
Wiedzę teoretyczną zdobytą podczas wykładów będzie można utrwalić na zajęciach laboratoryjnych o charakterze projektowym. Przykłady oraz projekty będą wykonywane z użyciem języka Python.
Uczestnicząc w zajęciach student nauczy się za pomocą języka Python pobrać i przetworzyć dane z najpopularniejszych formatów plików (np. csv, json) i na ich podstawie dokonać interpretacji problemu oraz wizualizacji na odpowiednim wykresie.
Przedmiot składa się z dwóch części:
a) wprowadzenie do programowania w języku Python (jupyter)
b) analiza i wizualizacja danych (część oparta o pakiety takie jak numpy, pandas, scipy, matplotlib, seaborn, plotly, ImageMagick)
• w formie statycznej
• w formie interaktywnej i animowanej
Uczestnicy kursu będą mogli poznać najpopularniejsze metody analizy i wizualizacji danych jedno-, dwu- lub wielowymiarowych.
Wiedzę teoretyczną zdobytą podczas wykładów będzie można utrwalić na zajęciach laboratoryjnych o charakterze projektowym. Przykłady oraz projekty będą wykonywane z użyciem języka Python.
Kolejne wykłady będą dotyczyły następujących tematów:
1) Wprowadzenie do języka Python
2) Jupyter
3) Zbiory danych. Przykłady zbiorów (np. kwartet Anscombe, Iris, MNIST) i ich formatów (csv, json, xml, fastaq)
4) Zbiory danych. Obróbka zbiorów danych za pomocą wbudowanych bibliotek i własnych skryptów (numpy, pandas) .
5) Analiza statystyczna. Średnia arytmetyczna, wariancja, korelacja, regresja liniowa (scipy).
6) Klasyfikacja statystyczna. Drzewa decyzyjne. Metoda wektorów nośnych. Sieci neuronowe.
7) Wizualizacja danych. Przegląd bibliotek do tworzenia wykresów (matplotlib, seaborn, plotly, ImageMagick)
8) Wizualizacja danych. Elementy graficzne (kolory, linie, łuki) i ich zastosowania w prezentacji danych. Transformacje zmiennych i ich wpływ na prezentacje graficzną. Uwzględnienie skali czasu na wykresach. Uwzględnienie współrzędnych przestrzennych na wykresach. Uwzględnienie niepewności (wariancji) na wykresach.
9) Wizualizacja danych. Najczęstsze błędy utrudniające czytanie wykresów. Percepcja kolorów oraz związek z prezentacją danych. Percepcja zależności i danych oraz związek z prezentacją danych.
10) Dobór cech elementu wykresu (długość, pole, kąty, kolory) do zmiennych mierzony zgodnie z różnymi skalami (ilorazowa, różnicowa, uporządkowana, nominalna).
11) Wykresy statyczne i interaktywne
Rodzaj przedmiotu
Koordynatorzy przedmiotu
Efekty kształcenia
Wiedza
1. Ma wiedzę ogólną w zakresie programowania (K_W02).
2. Ma wiedzę na temat konstrukcji programistycznych i składni języka Python (przypisanie, instrukcje sterujące, wywoływanie podprogramów i przekazywanie parametrów) (K_W02).
3. Ma wiedzę na temat struktur danych oraz wykonywanych na nich operacjach (K_W05).
4. Ma wiedzę na temat zarządzania informacją, w tym dotyczącą systemów baz danych, modelowania danych, składowania i wyszukiwania informacji (K_W08).
Umiejętności
1. Potrafi zastosować wiedzę matematyczną do formułowania, analizowania i rozwiązywania związanych z informatyką zadań o średnim poziomie złożoności (K_U01).
2. Potrafi pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02).
3. Potrafi pisać, uruchamiać i testować programy w wybranym środowisku programistycznym (K_U05).
4. Programuje algorytmy; wykorzystuje podstawowe techniki algorytmiczne i struktury danych (K_U07).
5. Potrafi ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych oraz wybrać i zastosować właściwą metodę i narzędzia (K_U22)
6. Zna co najmniej jeden język obcy na poziomie średnio zaawansowanym, oraz język angielski w stopniu umożliwiającym czytanie ze zrozumieniem dokumentacji oprogramowania, podręczników i artykułów informatycznych (K_U30).
Kompetencje
1. Rozumie konieczność systematycznej pracy nad projektami informatycznymi (K_K02).
2. Rozumie i docenia znaczenie uczciwości intelektualnej w działaniach własnych i innych osób; postępuje etycznie (K_K03).
3. Potrafi pracować indywidualnie, w tym także potrafi zarządzać swoim czasem i dotrzymywać terminów (K_K05).
Kryteria oceniania
Ocena końcowa wyliczana jest na podstawie punktów z projektu i programu zaliczeniowego.
Wagi poszczególnych składników: program - 50%, projekt - 50%.
Do zaliczenia przedmiotu wymagane jest otrzymanie przynajmniej 60% zarowno z programu jak i projektu.
Program: uczestnictwo w wykładach (20% oceny programu) oraz uczestnictwo w ćwiczeniach (80% oceny programu). Każda jednostka wykładowa i ćwiczeniowa skaluje się do odpowiedniej wartości uczestnictwa (np. przy 10 wykładach każdy wykład daje 2% programu czyli 1% oceny koncowej, przy 10 laboratoriach każde laboratorium jest warte 8% programu czyli 4% oceny końcowej). Zaliczenie danego laboratorium podlega ocenie i związane jest z oddaniem rozwiązań wszystkich zadań i pracy domowej (jeśli takowa jest).
Projekt: obejmuje twórcze rozwiązanie problemu na podstawie własnoręcznie przygotowanego zbioru danych i jego odpowiedniej interpretacji zakończonej wizualizacją w formie wykresów. Projekt jest prezentowany zarowno w wersji interaktywnej (HTML) jak i w formie statycznej (PDF).
Literatura
1. Zanurkuj w Pythonie (ebook: https://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie)
2. Python Data Analysis, Ivan Idris, 2014
3. Python for Data Analysis, Wes MacKinney, 2013
4. Zbiór esejów o sztuce pokazywania danych, P. Biecek, 2014 (http://www.biecek.pl/Eseje/).
strona domowa: https://www.mimuw.edu.pl/~lukaskoz/teaching/dav/
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
- Bioinformatyka i biologia systemów, stacjonarne drugiego stopnia
- Matematyka, stacjonarne, drugiego stopnia
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: