- Nazwa przedmiotu:
- Przetwarzanie danych w językach R i Python
- Koordynator przedmiotu:
- Dr inż. Marek Gągolewski
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Informatyka
- Grupa przedmiotów:
- Wspólne
- Kod przedmiotu:
- 1120-INPAD-MSP-0111
- Semestr nominalny:
- 1 / rok ak. 2016/2017
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- .
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- .
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- .
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład0h
- Ćwiczenia0h
- Laboratorium30h
- Projekt0h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Znajomość zagadnień programowania strukturalnego i obiektowego, algorytmów i struktur danych oraz programowania równoległego i rozproszonego
- Limit liczby studentów:
- .
- Cel przedmiotu:
- Kurs omawia najbardziej przydatne techniki programowania w językach R i Python 3 w pracy analityka danych. W ramach zajęć student uzyskuje praktyczną umiejętność zbierania i przygotowywania danych do analizy, oraz stosowania i implementacji wybranych algorytmów maszynowego uczenia się. Uczestnicy mają możliwość dogłębnego poznania technik programowania w tych językach, a także najbardziej popularnych i użytecznych bibliotek. W trakcie zajęć szczególną uwagę poświęca się sposobom przetwarzania dużych zbiorów danych (filtrowanie danych, agregacja danych w podgrupach, złączenia) przy użyciu Apache Spark.
- Treści kształcenia:
- Wykład:
Podstawowe atomowe typy danych w języku R.
Działania na wektorach w R.
Implementacja wybranych algorytmów maszynowego uczenia się przy użyciu tzw. wektoryzacji.
Typ podstawowy lista. Funkcje. Atrybuty obiektów. Podstawy programowania obiektowego w stylu S3. Typy złożone w R: macierz, czynnik, ramka danych.
Działania na ramkach danych (filtrowanie danych, złączenia, agregacja danych w podgrupach).
Instrukcja sterująca i pętle. Testy jednostkowe, profilowanie wydajności kodu.
Przetwarzanie napisów przy użyciu wyrażeń regularnych, obiektów typu data i czas oraz plików.
Środowiska. Leniwa ewaluacja. Niestandardowa ewaluacja. Środowiskowy model obliczeń. Dynamiczny a leksykalny zasięg zmiennych. Programowanie obiektowe w stylu S4, RefClasses i R6.
Podstawy programowania w języku Python 3. Typy skalarne i sekwencyjne, iteratory.
Słowniki, zbiory. Funkcje, instrukcje sterujące.
Obliczenia na wektorach, macierzach i innych tablicach (NumPy).
Przygotowywanie danych do analizy, praca z ramkami danych (Pandas).
Przetwarzanie napisów i plików, serializacja obiektów, dostęp do baz danych SQL. Ekstrakcja danych ze stron WWW, parsowanie plików XML.
Cython i Rcpp – tworzenie modułów/pakietów rozszerzających przy użyciu C++.
Programowanie rozwiązań wsadowych przy użyciu Apache Spark – wprowadzenie.
PySpark – wprowadzenie do interfejsu Apache Spark dla języka Python. Podstawowe operacje: scalanie zbiorów danych na podstawie wartości klucza, agregacja potencjalnie dużych zbiorów danych.
Laboratorium:
Laboratorium obejmuje praktyczne zastosowanie wiedzy zdobytej na wykładzie oraz rozwój umiejętności jej użycia w problemach analizy danych i algorytmach maszynowego uczenia się.
- Metody oceny:
- Na zaliczenie składają się oceny zdobyte za rozwiązanie 7 prac domowych (3 po 20 p., 4 po 10 p.). Na zaliczenie konieczne jest uzyskanie łącznie ponad 50 p. na 100 p. możliwych. Ostateczna ocena z przedmiotu wynika z sumy zdobytych punktów: [0, 50] – 2,0; (50, 60] – 3,0; (60, 70] – 3,5; (70, 80] – 4,0; (80, 90] – 4,5; (90, 100] – 5,0.
- Egzamin:
- nie
- Literatura:
- 1. M. Gągolewski, M. Bartoszuk, A. Cena, Przetwarzanie i analiza danych w języku Python, PWN, Warszawa, 2016 (w druku)
2. M. Gągolewski, Programowanie w języku R. Analiza danych, obliczenia, symulacje, Wydawnictwo Naukowe PWN, 2016 (wyd. II)
3. W. McKinney, Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython, O'Reilly Media, 2012
4. W. Richert, L.P. Coelho, Building Machine Learning Systems with Python, Packt Publishing, 2013
5. E. Bressert, SciPy and NumPy, O'Reilly Media, 2012
6. J.M. Chambers., Programming with Data, Springer, 1998
7. J.M. Chambers, Software for Data Analysis. Programming with R, Springer, 2008
8. N.S. Matloff, The Art of R Programming: A Tour of Statistical Software Design, No Starch Press, 2011
9. W.N. Venables, B.D. Ripley, S Programming, Springer, 2000
10. H. Wickham, Advanced R, Chapman&Hall/CRC
11. M. Hamstra, Learning Spark, O'Reilly, 2013
12. M. Frampton, Mastering Apache Spark, Packt, 2015
13. R 3.3, RStudio, gcc, g++, Python 3.5 (Anaconda), Cython, Jupyter
14. http://www.gagolewski.com/teaching
- Witryna www przedmiotu:
- e.mini.pw.edu.pl
- Uwagi:
- .
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Efekt W2_01
- Zna kluczowe języki programowania wykorzystywane w analizie danych – R i Python
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_W13
Powiązane efekty obszarowe:
- Efekt W2_02
- Zna metody filtrowania, czyszczenia, podsumowywania i łączenia zbiorów danych
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_W05, PD_W09, PD_W15
Powiązane efekty obszarowe:
, ,
Profil ogólnoakademicki - umiejętności
- Efekt U2_01
- Potrafi projektować wydajne metody przetwarzania i analizy danych
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_U09
Powiązane efekty obszarowe:
- Efekt U2_02
- Potrafi wykorzystać możliwości równoległego przetwarzania danych do rozwiązywania złożonych problemów
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_U11
Powiązane efekty obszarowe:
- Efekt U2_03
- Potrafi zaprojektować system wykorzystujący metody klasyfikacji i regresji
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_U12
Powiązane efekty obszarowe:
- Efekt U2_04
- Dostrzega ograniczenia i słabe strony istniejących narzędzi informatycznych
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_U17
Powiązane efekty obszarowe:
Profil ogólnoakademicki - kompetencje społeczne
- Efekt K2_01
- Posiada zdolność do kontynuacji kształcenia oraz świadomość potrzeby samokształcenia w ramach procesu kształcenia ustawicznego
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_K01
Powiązane efekty obszarowe:
- Efekt K2_02
- Potrafi posługiwać się językiem angielskim w stopniu umożliwiającym bezproblemową komunikację w zakresie zagadnień zawodowych oraz studiowanie dokumentacji technicznej
Weryfikacja: ocena prac domowych
Powiązane efekty kierunkowe:
PD_K08
Powiązane efekty obszarowe: