Prowadzący wykład: Klaudia Dynak, Mikołaj Słupiński, Piotr Lipiński
Prowadzący ćwiczenia/pracownie: Małgorzata Biernacka, Klaudia Dynak, Łukasz Halada, Paweł Rychlikowski, Mikołaj Słupiński
Koordynator zajęć: Piotr Lipiński
Email do prowadzących: uczeniemaszynowe@cs.uni.wroc.pl
Zajęcia składają się z wykładu i zajęć praktycznych w formie ćwiczeń i pracowni. Przed każdymi zajęciami praktycznymi będzie się ukazywać lista, na której wskazana będzie forma zajęć (ćwiczenia/pracownia), na których będzie omawiana.
Będzie 12 list. Suma punktów możliwych do zdobycia za listy to 120 punktów.
Listy ćwiczeniowe będą oceniane w systemie deklaracji. W przypadku niezrozumienia lub niepoprawności prezentowanego rozwiązania, prowadzący(-a) ćwiczenia może zdecydować o karze w wymiarze usunięcia punktów za prezentowane zadanie lub usunięcia do 50% punktów za wszystkie zadeklarowane na liście zadania. W przypadku gdy student(-ka) nie jest w stanie przedstawić rozwiązania zadeklarowanego zadania, lub kara ma wystąpić trzeci lub kolejny raz, prowadzący(-a) może podwyższyć karę do usunięcia do 100% punktów za wszystkie zadeklarowane na liście zadania.
Rozwiązania list na pracownię należy umieścić w SKOSie w terminie wskazanym na liście (wspólnym dla wszystkich grup). Warunkiem koniecznym do uzyskania punktów za listę na pracownię jest osobista prezentacja rozwiązań. W ramach prezentacji prowadzący(-a) może wymagać zaadaptowania rozwiązania do zmodyfikowanej treści zadania.
Rozwiązania nadesłane po terminie będą oceniane poprzez odjęcie 20 punktów procentowych uzyskanych za daną listę punktów za każdą rozpoczętą dobę opóźnienia. Prowadzący(-a) może odmówić sprawdzania list nadesłanych później niż 5 dni po terminie.
Nieobecność na ćwiczeniach/pracowni (konieczną do uzyskania punktów za listę) można odrobić maksymalnie 3 razy w ciągu semestru w trakcie konsultacji, przy czym nie wymagamy podania przyczyny.
W drugiej części semestru realizowany będzie projekt zespołowy. Punkty do zdobycia za projekt:
5 pkt za prezentację pomysłu/podejścia,
15 pkt za prezentację wyników częściowych (milestone) zgodnie z zakres indywidualnie ustalanym z prowadzącym(-ą) ćwiczenia,
20 pkt za finalną prezentację projektów.
Warunkiem koniecznym do zaliczenia ćwiczeń jest uzyskanie 25% punktów z każdej z co najmniej 10 list, 50% punktów ze wszystkich list oraz uzyskanie co najmniej 50% punktów za projekt.
Wykład zakończy się egzaminem. Ocena z wykładu bazować będzie na egzaminie przeprowadzonym w sesji oraz punktacji uzyskanej z ćwiczeń:
procent_punktów_z_wykładu = procent_punktów_z_egzaminu + 0.2 * procent_puntów_z_ćwiczeń
Progi na poszczególne oceny, zarówno z wykładu jak i ćwiczeń, to:
3.0 -- 50%
3.5 -- 60%
4.0 -- 70%
4.5 -- 80%
5.0 -- 90%
UWAGA: prezentacja to nie książka, notatki czy skrypt – to raczej streszczenie omawianego materiału, pokazanie wybranych algorytmów, przedstawienie wybranych przykładów – dlatego przejrzenie samych prezentacji czasami może nie wystarczyć do zrozumienia treści całego wykładu. Zdecydowanie zapraszamy do regularnego uczestniczenia w wykładzie!
Wykład 1: Wprowadzenie [PDF], Niepewność danych [PDF] (warto zobaczyć też informacje o rozkładach prawdopodobieństwa w materiałach dodatkowych poniżej)
Wykład 2: Slajdy z odnośnikami do dodatkowych materiałów [PDF]
Wykłąd 3: Slajdy z odnośnikami do dodatkowych materiałów [PDF]
Wykład 4: [PDF] Uwaga: dystans cosinusowy nie zachowuje nierówności trójkąta, więc formalnie nie jest metryką, niemniej często jest wykorzystywany jako sposób mierzenia odległości.
Wykład 5: [PDF]
Wykład 6: Grupowanie danych [PDF], Kiedy KMeans nie działa? [IPYNB], Przykładowe grupowania gęstościowe i hierarchiczne [IPYNB], Przykładowe grupowania z Self-Organizing Maps (SOM) [IPYNB]
[Lista 02 PL] [Assignment 02] [data1.csv] [advertising.csv] [data4.csv]
Additional hint for task 1: If you want to use linear regression, the input viariables should be independent with each other, and their relation to the output should be linear. Also, linear regression is sensitive to outliers.
Additional hint for task 4: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html, test a few alphas and select the best one.
Additional scoring criteria were an artifact, the points are given for each of the sub-tasks.
Normalization: Usually, we normalize only input variables, not output variables.
[Lista 03 PL] [Assignment 03] Deklaracje w SKOSie, najpóźniej do rozpoczęcia ćwiczeń w swojej grupie. We will declare in SKOS till the time of your lab classess.
Additional hint: "No analytical solution" is also a good answer.
[Lista04PL] [Assignment04ENG] [bank.csv] [embeddings.pkl] [item_list.txt] [meta_Books.json.gz] [advertising.csv] [adult.csv] [Titanic Dataset.csv]
There was a clarification in task 2 on 2025-10-31 11:16
There was a clarification in tasks 4, 5 on 2025-11-03 14:18
2025-11-03 19:09 Better example for item embeddings: [embeddings2.pkl] [item_list2.txt] [meta_Sports_and_Outdoors.json.gz]
[Lista05PL] [Assignment05ENG] [all_data]
[Lista06PL] [Assigment6ENG] [Rysunek 1][Rysunek 2][Rysunek 3]
[Lista07PL ][Assignment7ENG ][All Data ]
There was a clarification on task 2 and 3 on 2025-11-30
Programowanie w pythonie dla początkujących data scientistów i machine learningowców:
NumPy: the absolute basics for beginners
Jupyter Notebook Documentation
Programowanie w pythonie dla bardziej zaawansowanych data scientistów i machine learningowców (niewymagane i przekraczające zakres naszych zajęć):
materiały do minikursu na przedmiocie Advanced Data Mining 2025 (przygotowane przez Marię Szlasę i Piotra Lipińskiego):
mini-course on advanced scientific python: Numpy [IPYNB], Pandas and Dask [IPYNB], SciKit Pipeline, Scikit GridSearch and Optuna [IPYNB], Weights and Biases [IPYNB], multiprocessing [IPYNB], Numba, JIT, CUDA [IPYNB], Pytorch [IPYNB], Tensorboard [IPYNB]. Visualizations [IPYNB]
O rozkładach prawdopodobieństwa:
Introduction to Probability Distributions
Common Discrete Probability Distributions
Continuous Probability Distributions
Common Continuous Probability Distributions
Nice metrials:
https://www.youtube.com/@statquest