Plan studiów

Plan studiów „Data Science” obejmuje prawie 280 godzin zajęć, prowadzonych w formie wykładów, warsztatów i pracowni komputerowych. Kierunek posiada dwie specjalności „Data Science – Developer” i „Data Science – Analityk danych”.  Zajęcia wspólne dla obu specjalności to około 140h, głównie na I sem. kolejne 140h to ww. specjalizacje. Zakres tematów dotyczy następujących zagadnień:

I SEMESTR

Blok: Uczenie maszynowe i big data

  1. Statystyczna analiza danych (wykład/pracownia: 16h/8h)
  2. Przetwarzanie danych – bazy, hurtownie i big data (wykład: 8h)
  3. Wprowadzenie do Uczenia Maszynowego (wykład/pracownia: 16h/8h)
  4. Wybrane metody matematyczne w analizie danych (wykład/pracownia: 8h/8h)
  5. Data Science z jezykiem Python 1 (pracownia: 16h)
  6. Język R i Rstudio (pracownia: 16h)
  7. Technologie i środowisko Hadoop Spark – Wstęp (wykład/pracownia: 4h/12h)
  8. Podstawowe narzędzia raportowania – Arkusz kalkulacyjny i wprowadzenie do SQL (pracownia: 20h)

II SEMESTR

Blok: Przedmioty wspólne

  1. Przegląd metod Uczenia Maszynowego (wykład: 16h)
  2. Problemy biznesowe i rozwiązania wykorzystujące data science (wykład: 12h)
  3. Seminarium – Prezentacje projektów (4h)

Blok: Specjalność – Developer

  1. Data Science z językiem Python 2 (24 h)
  2. Sztuczne Sieci Neuronowe i Deep Learning (wykład/pracownia: 16h/24h)
  3. Kontenery w nowoczesnych środowiskach programistycznych i produkcyjnych – Docker, Kubernetes, Kafka (pracownia: 8h)
  4. Technologie i środowisko Hadoop (wykład/pracownia: 8h/16h)
  5. Hadoop Machine Learning Frameworks (pracownia: 8h)

Blok: Specjalność – Analityk danych

  1. Rynek badań, analiz i data science w Polsce i na świecie (wykład: 8h)
  2. Język R jako narzędzie wizualizacji i raportowania (pracownia: 16h)
  3. Interfejsy API w przetwarzaniu danych – rozpoznawanie obrazu i przetwarzanie języka naturalnego (wykład/pracownia: 8h/16h)
  4. Zaawansowane narzędzia analityczne (pracownia: 16h)
  5. Język SQL dla Data Science (wykład/pracownia: 8h/16h)

Krótka charakterystyka wybranych przedmiotów

I Semestr

Blok: Uczenie maszynowe i big data

Statystyczna analiza danych

Przegląd metod statystycznych; Statystyczna analiza danych: analiza opisowa, testy istotności, wariancja, regresja. Zapoznanie się oraz nabycie praktycznej umiejętności używania i wykorzystywania pojęć i metod statystycznych do wykonania statystyki opisowej oraz przeprowadzenia weryfikacji hipotez.

Przetwarzanie danych – bazy, hurtownie i big data

Wprowadzenie w problematykę baz danych, hurtowni danych i tematów pokrewnych. Czym różnią się hurtownie danych od zwykłych baz danych? Typowe zastosowania. Pojęcia: OLAP – On-Line Analytical Processing; BI – Business Intelligence.  Co sprawia, że duże ilości danych określamy „big data”. Oblicza wyzwań etycznych w przypadku przetwarzania big data. Zrozumienie źródeł i struktury big data. Przechowywanie big data. Przygotowywanie danych big data do analizy.

Wprowadzenie do Uczenia Maszynowego

Nabycie umiejętności prawidłowego przygotowania danych do analizy, wyboru modelu odpowiedniego do postawionego zadania badawczego, doboru parametrów oraz przeprowadzenia procesu uczenia. Wielowymiarowa analiza danych; Metody wizualizacji, w tym PCA, skalowanie wielowymiarowe, itd. ICA, grupowanie, metody liniowe;

  • Wprowadzenie do analizy danych z przestrzeni wielowymiarowych. Wielowymiarowy rozkład normalny. Problem przekleństwa wielowymiarowości.
  • Wstępne przygotowanie danych do analizy (braki w danych, obserwacje odstające, niezbalansowanie klas, wybielanie danych, ang. data binning).
  • Podstawowe metody wizualizacji danych, w tym analiza składowych głównych oraz skalowanie wielowymiarowe.
  • Poznanie pojęć uczenia nienadzorowanego oraz nadzorowanego.
  • Podstawowe metody klasyfikacji i grupowania danych. Metody ewaluacji modelu.
  • Analiza składowych niezależnych. Bayesowska teoria decyzji. Metoda Maximum likelihood estimation.

Wybrane metody matematyczne w analizie danych

Zrozumienie efektywności algebry liniowej przy wykorzystaniu w data science; Rozumie podstawowych pojęć matematycznych algorytmów stosowanych w data science. Wykorzystanie pakietu NumPy i odpowiednich metod matematycznych przekształceń danych i obliczeń;

Algebra liniowa – wprowadzenie i operacje macierzowe; Metody numeryczne; Pojęcia równania różniczkowego i pochodnej cząstkowej; Wykłady realizowane za pomocą jupyter.org;

Data Science z językiem Python I

Wprowadzenie do języka Python;  Zajęcia mają na celu zapoznanie użytkownika z niektórymi wybranymi aspektami programowania w języku Python. W szczególności pokazany zostanie workflow całego procesu przetwarzania danych oraz elementy programowania funkcyjnego. Pokazane zostanie również wykorzystanie Pythona jako narzędzia do obliczeń naukowych – NumPy, opreracji na złożonych strukturach danych za pomocą Pandas oraz podstawowe metody wizualizacji danych za pomocą Matplotlib.

Język R i RStudio

Wprowadzenie do języka R i środowiska RStudio – Podstawy języka. Przetwarzanie danych w R i data munging; „tidy data manifesto” – data wrangling z użyciem pakietów (dplyr, data.table, reshape2, tidyr)

  • Wizualizacja danych w R; „grammar of graphics” – podstawy wizualizacji z użyciem pakietu ggplot2.
  • Podstawy machine learning w R.
  • R i bazy danych – podstawy.

Technologie i środowisko Hadoop Spark – Wstęp

Interaktywna analiza danych z Apache Spark. Wprowadzenie do Apache Spark. Spark Core i jego zalety w stosunku do paradygmatu map-reduce. Podstawy pracy z Spark API. Architektura i sposób wykonywania aplikacji na Hadoop

Analiza danych z wykorzystaniem SparkSQL. Wprowadznie do SparkSQL i DataFrames. Spark jako wszechstronne narzędziem do analizy dużych zbiorów danych. W ramach przedmiotu słuchacze:

  • poznają ekosystemy Hadoop i Spark;
  • nauczą się pracować z Apache Spark tak w trybie interaktywnym (konsola), jak i wsadowym;
  • dowiedzą się, jak realizować zapytania ETL przy użyciu Spark SQL;

Podstawowe narzędzia raportowania – Arkusz kalkulacyjny i wprowadzenie do SQL

Najważniejsze narzędzia analityczne w arkuszu MS Excel; wstępna analiza danych; czyszczenie danych. Wśród poruszanych tematów znajdują się: przygotowywanie, weryfikowanie i formatowanie raportów przy pomocy narzędzia MS Excel.

Przedmiot ma zapewnić solidne wprowadzenie do korzystania z języka SQL na przykładzie bazy PostgreSQL. Dowiesz się jak używać języka SQL, poznasz jego składnię, a także sposoby wyciągania informacji z baz danych. Nauczysz się jak konstruować zapytania proste oraz agregujące dane, a tak że zapytania oparte o kilka tabel.

II Semestr

Blok: Przedmioty wspólne

Przegląd metod Uczenia Maszynowego

  • Nonparametric techniques (density estimation, Parzen windows, K- Nearest Neighbor estimation and rule, similarity metrics)
  • Linear dicriminant functions (two- and multicategory cases for linear discrim. functions and decision surfaces, Minimum squared error, Fisher linear discriminant)
  • special section: Kernel methods and Support Vector Machines
  • Non-metric algorithms (additive models, Trees and related methods (ID3,C4.5, CART, MARS))
  • special case: boosting and additive trees
  • Unsupervised learning (densities estimation, criterion functions for clustering, agglomerative clustering, EM with Fisher discrimination criterion, unknown number of clusters, SOM)
  • NLP – Natural Language Processing

Problemy biznesowe i rozwiązania wykorzystujące data science

Pokazanie jak wykorzystanie data science pozwala wspierać firmy i organizacje mające do czynienia z dużą ilością danych w podejmowaniu decyzji biznesowych.

  • Specyfika pracy badacza, analityka i data scientist.
  • Logika analityki danych biznesowych
  • Inżynieria i podejmowanie decyzji bazujące na danych
  • Dane i analityka jako element strategii
  • Od problemu biznesowego do eksploracji danych

Blok: Specjalność – Developer

Data Science z językiem Python II

Praktyczne przyklady opracowania metod znanych z przedmiotu „Przegląd metod Uczenia Maszynowego”.

Biblioteki SciKit-learn i Tensorflow; Wykorzystanie modeli ML i prezentacja ich zastosowania na wybranych przykładach.

Sztuczne Sieci Neuronowe i Deep Learning

Wprowadzenie do sztucznych sieci neuronowych; Reguły uczenia sztucznych sieci neuronowych; Sieci neuronowe jednokierunkowe; Algorytmy optymalizacji; Właściwości uogólniające sieci. Dobór struktury sieci; Ocena jakości sieci neuronowej; Sieci RBF; Probabilistyczne sieci neuronowe PNN;

Sieci rekurencyjne: sieć Hopfielda; Sieci samoorganizujące się na zasadzie współzawodnictwa; Gaz neuronowy; Sieci samoorganizujące się typu Hebba; Logika rozmyta; Sieci neuronowe o logice rozmytej; Wykorzystanie sieci neuronowych w analizie przeżyć.

Przedstawienie idei uczenia za pomocą Głębokich Sieci Neuronowych i pokazanie możliwych zastosowań na przykładach.

  • Supervised Feedforward networks (error backpropagation, softmax for classification, gradient computation ( and extension for multi-threading, gradient of the 1st hidden layer, succeeding layers), weight penalties,  etc )
  • Restricted Boltzmann Machines
  • Convolutional Neural Networks

Przykłady wykorzystania w przetwarzaniu sygnałów i obrazów.

Technologie i środowisko Hadoop

Najważniejsze narzędzia ekosystemu Hadoop, służące do składowania, przetwarzania i analizy ogromnych ilości danych (Big Data). Na zajęciach przedstawione zostaną podstawowe komponenty platformy Apache Hadoop (obliczenia w modelu MapReduce oraz system plików HDFS), silnik Apache Spark do wydajnych obliczeń „in-memory”, główne narzędzia bazodanowe (Hive, HBase, Cassandra, Sqoop) oraz analityczne.

Praktyczna część zajęć obejmować będzie przygotowanie i konfigurację środowiska developerskiego, pracę z klasterem obliczeniowym oraz praktyczne wykorzystanie przedstawionych technologii w formie szeregu zadań wykonywanych w ramach pracowni specjalistycznej.

Kontenery w nowoczesnych środowiskach programistycznych i produkcyjnych – Docker, Kubernetes, Kafka

Zagadnienia konteneryzacji. Umiejętność paczkowania oprogramowania w formie kontenerów oraz zarządzania kontenerami w najbardziej popularnych platformach. Rozumienie pojęcia Infrastructure as a Code. Umiejętność tworzenia dynamicznych środowisk w najbardziej popularnych chmurach.

Praca w nowoczesnym środowisku programistycznym. Rozumienie zaawansowanych zagadnień procesu wytwarzania oprogramowania. Umiejętność efektywnego zarządzania logami aplikacji. Umiejętność dostarczania oprogramowania w trybie Continuous Delivery.

Hadoop Machine Learning Frameworks

Najważniejsze frameworki do uczenia maszynowego, wykorzystywane w ekosystemie Hadoop, służącym do przetwarzania i analizy ogromnych ilości danych (Big Data).
W ramach zajęć przewidziane jest przestawienie narzędzi jak Apache Spark MLib, Apache Mahout oraz Oryx, a także praktyczne zastosowanie wybranych bibliotek w ramach pracowni specjalistycznej.

Blok: Specjalność – Analityk danych

Rynek badań, analiz i data science w Polsce i na świecie

Celem przedmiotu jest przedstawienie rynku big data i otoczenia biznesowego , a w szczególności:

  • wielkość i charakterystyka rynków
  • modele biznesowe występujące na rynku badań i analiz
  • sprzedaż i odbiorcy rozwiązań analitycznych
  • przykłady rozwiązań analitycznych wykorzystywanych w marketingu i sprzedaży
  • praca dla analityków w polskich realia: oczekiwania, warunki, stawki

Interfejsy API w przetwarzaniu danych – rozpoznawanie obrazu i przetwarzanie języka naturalnego

Prezentacja Interfejsów API jako narzędzi zapewnienia dostępu do zaawansowanych algorytmów służących do wyodrębniania rozbudowanych informacji z różnego rodzaju danych.

API analizy obrazów w celu kategoryzowania i przetwarzania danych wizualnych. Możliwości obejmują analizowanie obrazów, proste opisywanie jak i zaawansowane algorytmy rozpoznawania i detekcji.

Wprowadzenie do API analizy językowej, które pozwalają na identyfikowanie koncepcji i akcji w tekście za pomocą tagowania części mowy, oraz na znajdowanie wyrażeń i pojęć przy użyciu parserów języka naturalnego.

Język R jako narzędzie wizualizacji i raportowania

Eksploracyjna Analiza Danych (EDA – Exploratory Data Analysis). Odkrywanie danych z wykorzystaniem róznego rodzaju technik (przede wszystkim graficzne) w celu: odkrycia istotnych zmiennych, szumu danych, struktury danych, przetestowania podstawowych założeń. EDA jako inne podejście do analizy danych, porównaniu do analizy klasycznej.

Notebook jako narzędzie wymiany informacji w dziale Data Science.

Biblioteka „Shiny” i możliwość zamiany wykonanych analiz w interaktywne aplikacje webowe. Aplikacje Shiny tworzone i zasilane przez działającą na serwerze aplikację R.  Budowa aplikacji w Shiny – projekt.

Zaawansowane narzędzia analityczne

W trakcie zajęć omówione zostaną sposoby przetwarzania dużych zbiorów danych (filtrowanie danych, agregacja danych w podgrupach, złączenia) przy użyciu Apache Spark. 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. Grupy zagadnień związane z pojęciami:

  • data wrangling w Apache Spark
  • Spark i bazy danych
  • podstawy budowania modeli w Apache Spark

Poza tym, dowiesz się, jak wyświetlać wyniki przetwarzania danych w Zeppelin. Zrozumieć podstawowe elementy konstrukcyjne UI opartego na Zeppelin. Jak zintegrować Zeppelin ze Spark.

Język SQL dla Data Science

Przedmiot stanowi rozszerzenie przedmiotu z I sem. tematy dotyczą głównych tematów, które naukowiec danych powinien zrozumieć podczas pracy z relacyjnymi bazami danych: podstawowe statystyki w SQL, przygotowywanie danych w języku SQL, zaawansowane filtrowanie i agregacja danych, funkcje okien i przygotowywanie danych do użytku z narzędziami analitycznymi. Materiał obejmuje tematy:

  • elementy SQLa dla data scientists; Zapytania złożone i podzapytania SQL; Typy danych
  • różnice pomiędzy złączeniami “left”, “right” and “full” joins
  • zaawansowane grupowanie i funkcje agregacyjne