Przetwarzanie danych ustrukturyzowanych 2017/2018
(Structured Data Processing)
Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, I rok, studia inż., kier. Inżynieria i analiza danych (Data Science)

Informacje ogólne

Wykład: prof. nzw. dr hab. inż. Marek Gągolewski wt., 14-16, s. 102
Laboratoria: mgr Anna Cena wt., 16-18, s. 219
mgr Barbara Żogała-Siudem wt., 16-18, s. 218

Celem przedmiotu jest przegląd najczęściej stosowanych w praktyce metod przetwarzania danych i przygotowywania ich do analizy. Szczególny nacisk położony jest na omówienie i ćwiczenie technik filtrowania, przekształcania i agregacji zmiennych lub całych zbiorów danych, także w podgrupach. Uczestnicy kursu poznają najbardziej podstawowe metody czyszczenia danych, ich wizualizacji i podsumowywania, a także imputacji braków danych. Ponadto nabywają umiejętność przetwarzania danych w postaci tekstowej, m.in. z różnego rodzaju API i innych zasobów internetowych.

Harmonogram zajęć

Wymagane oprogramowanie

  • R ≥ 3.4.3
  • RStudio Desktop Open Source Edition ≥ 1.1
  • Anaconda (zawiera większość pakietów Pythona, z których będziemy korzystać; korzystamy z Pythona 3.6, nie: 2.7)
  • JupyterLab (pip install jupyterlab)

Literatura i odnośniki

R (I część semestru):
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016
  2. Wickham H., Advanced R, Chapman & Hall/CRC, 2014
  3. Wickham H., Grolemund G., R for Data Science, O'Reilly, 2017
Python (II część semestru):
  1. Gągolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python, Wydawnictwo Naukowe PWN, Warszawa, 2016
  2. VanderPlas J., Python Data Science Handbook: Essential Tools for Working with Data, O'Reilly, 2016
  3. McKinney W., Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython, O'Reilly Media, 2012
  4. Bressert E., SciPy and NumPy, O'Reilly Media, 2012
Uzupełniająca:
  1. Chambers J.M., Programming with Data, Springer, 1998 (The Green Book)
  2. Chambers J.M., Extending R, Chapman & Hall/CRC, 2016
  3. Grolemund G., Hands-On Programming with R, O'Reilly, 2014
  4. Venables W.N., Ripley B.D., S Programming, Springer, 2000
  5. Mittal H.V., R Graphs Cookbook, Packt Publishing, 2011
  6. Murrell P., R Graphics, Chapman & Hall/CRC, 2006
  7. Abelson H., Sussman J., Sussman G.J., Struktura i interpretacja programów komputerowych, WNT, Warszawa, 2002
  8. Wickham H., testthat: Getting started with Testing, R Journal 3(1), 2011, s. 3-10
  9. Wickham H., Grolemund G., R for Data Science, O'Reilly, 2016

Tydzień 1. (2018-02-20)

Wprowadzenie do języka i środowiskaR,
Klasyfikacja typów danych w R,
Podstawowe typy atomowe: Wektory i NULL

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 1, 2
  2. Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
  3. Uwaga: należy „obserwować” (Watch) ww. repozytorium, gdyż inaczej nie będą Państwo otrzymywać wiadomości e-mail nt. aktualizacji, ogłoszeń itp. (sekcja Issues)

  4. Dokumentacja RStudio (szczególnie warty przeczytania jest punkt skróty klawiszowe)
  5. Markdown intro
  6. Markdown basics @ GitHub
  7. RMarkdown basics @ RStudio
  8. RMarkdown output formats @ RStudio
  9. Pandoc
  10. knitr chunk options
  11. The Not So Short Introduction to LaTeX by T. Oetiker

Zwracamy uwagę na funkcję source(). Możemy wywoływać ją w plikach .R i dokumentach knitra.

Zachęcamy do pracy w stylu: każde „duże zadanie” (np. praca domowa) – osobny projekt w RStudio.

Tydzień 2. (2018-02-27)

R: Zwektoryzowane operacje na wektorach atomowych,
Przekształcanie i filtrowanie zmiennych,
Agregacja danych

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 3
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 3. (2018-03-06)

R: Listy,
Funkcje,
Atrybuty obiektów

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 4, 5, 6
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 4. (2018-03-13)

R: Atrybuty specjalne, podstawy programowania obiektowego w stylu S3,
Typy złożone – Macierze, czynniki, ramki danych

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 7
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
  3. dplyr
  4. data.table
  5. RSQLite

Tydzień 5. (2018-03-20)

R: Instrukcje sterujące, obsługa wyjątków
Tworzenie wykresów cz. 1

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 8, 9, 12
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Termin oddawania pracy domowej nr 1: 2018-03-23.

Tydzień 6. (2018-03-27)

R: Tworzenie wykresów cz. 2

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 12
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 7. (2018-04-10)

R: Przetwarzanie danych tekstowych cz. 1

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 10
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
  3. stringi – dokumentacja on-line

Termin oddawania pracy domowej nr 2: 2018-04-13.

Tydzień 8. (2018-04-17)

R: Przetwarzanie danych tekstowych cz. 2,
Wyrażenia regularne

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 10
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
  3. stringi – dokumentacja on-line
  4. regular-expressions.info
  5. Regular Expressions – ICU User Guide

Tydzień 9. (2018-04-24)

R: Przetwarzanie plików,
Data i czas

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 11
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Termin oddawania pracy domowej nr 3: 2018-05-04.

Tydzień 10. (2018-05-08)

Python: numpy cz. 1

Materiały pomocnicze:
  1. Gagolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python, Wydawnictwo Naukowe PWN, Warszawa, 2016 — rozdz. 7
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 11. (2018-05-15)

Python: numpy cz. 2, pandas cz. 1

Materiały pomocnicze:
  1. Gagolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python, Wydawnictwo Naukowe PWN, Warszawa, 2016 — rozdz. 7, 8
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 12. (2018-05-22)

Python: pandas cz. 2

Materiały pomocnicze:
  1. Gagolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python, Wydawnictwo Naukowe PWN, Warszawa, 2016 — rozdz. 8
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Termin oddawania pracy domowej nr 4: 2018-05-25.

Tydzień 13. (2018-05-29)

Python: Theano i TensorFlow,
Cython

Materiały pomocnicze:
  1. Theano
  2. TensorFlow
  3. zob. też. PyTorch
  4. Cython
  5. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 14. (2018-06-05)

R: Środowiska

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 17
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Tydzień 15. (2018-06-12)

R: Środowiskowy model obliczeń i niestandardowa ewaluacja,
Formuły

Materiały pomocnicze:
  1. Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 — rozdz. 18
  2. kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie

Termin oddawania pracy domowej nr 5: 2018-06-15.