Zastosowanie Metod Inteligencji Obliczeniowej
Lista zajęć
Wykład
Wyniki kolokwium. Wyniki kolokwium poprawkowego. Wyniki kolokwium dla osób powtarzających przedmiot. Wyniki kolokwium poprawkowego dla osób powtarzających przedmiot.
Uwaga!
Zaliczenie poprawkowe dla osób powtarzających przedmiot w semestrze letnim 2016/2017 odbędzie się dnia 14.05.2017 o godz. 11:30 w sali CW 45. Osoby, które nie zaliczyły laboratorium, proszę o zaprezentowanie zaległych projektów w powyższym terminie.
- Wprowadzenie, materiał powiązane:
- ImageNet Classification with Deep Convolutional Neural Networks
- VizDoom
- Stanley: The Robot that won DARPA Grand Challenge
- Uczenie maszynowe (obowiązuje na zaliczeniu do drzew decyzyjnych włącznie) (pełna wersja slajdów)
- Programowanie genetyczne
- Kolokwium
Laboratorium
Uwaga!
W dniu 17.02.2017 (piątek) o godz. 8:00 w laboratorium CW43 odbędzie się zaliczenie poprawkowe laboratorium. Osoby, które nie mogą się pojawić w powyższym dniu, proszę o wcześniejszy kontakt mailowy z propozycją innego dnia (z preferencją na dni robocze).
Uwaga!
Każdy plik źródłowy musi być opatrzony następującym nagłówkiem:
//
// Autor:
// Imię Nazwisko, numer indeksu
//
Zajęcia 1
Temat: Wprowadzenie do klasyfikacji, klasyfikatory drzewiaste.
Materiały pomocnicze do zajęć.
Zadania do wykonania.
Proszę przygotować program, który:
- wczyta plik z danymi w formacie CSV,
- zbuduje drzewo decyzyjne algorytmem ID3,
- posiada (graficzny) interfejs użytkownika pozwalający na wprowadzenie nieznanego dotąd przypadku, uruchomienie klasyfikacji i prezentację jej wyniku (wraz z uzasadnieniem, tj. zaznaczeniem ścieżki w drzewie),
- wyświetli dane statystyczne dla każdego węzła w drzewie: entropia, entropia warunkowa, zysk informacyjny, dla liści - decyzja,
- dane wprowadzone przez użytkownika muszą podlegać walidacji!
- dane do wykorzystania w zadaniu: contact-lenses.csv, weather.csv
Poprawne drzewo ID3 dla pliku contact-lenses.csv:
tear-prod-rate = reduced: none tear-prod-rate = normal | astigmatism = no | | age = young: soft | | age = pre-presbyopic: soft | | age = presbyopic | | | spectacle-prescrip = myope: none | | | spectacle-prescrip = hypermetrope: soft | astigmatism = yes | | spectacle-prescrip = myope: hard | | spectacle-prescrip = hypermetrope | | | age = young: hard | | | age = pre-presbyopic: none | | | age = presbyopic: none
Zajęcia 2
Temat: Klasyfikacja regułowa.
Zadania do wykonania
Proszę rozwinąć program z zajęć 1 o następującą funkcjonalność:
- dyskretyzację liczbowych atrybutów; liczba przedziałów powinna być konfigurowalna dla każdej zmiennej osobno
- syntezę zbioru reguł na podstawie drzewa decyzyjnego,
- wyświetlenie utworzonych reguł
- wyświetlenie statystyk dla poszczególnych reguł: wsparcie i pewność (support and confidence). Dla reguły X => Y:
- Support = N(X ∪ Y)/N
- Confidence = N(X ∪ Y)/N(X)
- gdzie:
N - liczba wszystkich przykładów uczących
N(X) - liczba przykładów pasujących do części warunkowej reguły
N(X ∪ Y) - liczba przykładów pasujących do części warunkowej i decyzyjnej reguły
- klasyfikację nowego przypadku z użyciem reguł
- dane do wykorzystania w zadaniu: iris.csv, contact-lenses.csv
Poprawne drzewo ID3 dla pliku contact-lenses.csv i dyskretyzacji każdego atrybutu liczbowego na 5 wartości (null oznacza brak decyzji, opcjonalnie zamiast null można użyć klasy większościowej z węzła wyżej w drzewie):petalwidth = '(-inf-0.58]': Iris-setosa
petalwidth = '(0.58-1.06]'
| sepalwidth = '(-inf-2.48]': Iris-versicolor
| sepalwidth = '(2.48-2.96]': Iris-versicolor
| sepalwidth = '(2.96-3.44]': null
| sepalwidth = '(3.44-3.92]': Iris-setosa
| sepalwidth = '(3.92-inf)': null
petalwidth = '(1.06-1.54]'
| petallength = '(-inf-2.18]': null
| petallength = '(2.18-3.36]': Iris-versicolor
| petallength = '(3.36-4.54]': Iris-versicolor
| petallength = '(4.54-5.72]'
| | sepalwidth = '(-inf-2.48]': Iris-virginica
| | sepalwidth = '(2.48-2.96]'
| | | sepallength = '(-inf-5.02]': null
| | | sepallength = '(5.02-5.74]': null
| | | sepallength = '(5.74-6.46]': Iris-versicolor
| | | sepallength = '(6.46-7.18]': Iris-versicolor
| | | sepallength = '(7.18-inf)': null
| | sepalwidth = '(2.96-3.44]': Iris-versicolor
| | sepalwidth = '(3.44-3.92]': null
| | sepalwidth = '(3.92-inf)': null
| petallength = '(5.72-inf)': null
petalwidth = '(1.54-2.02]'
| sepallength = '(-inf-5.02]': Iris-virginica
| sepallength = '(5.02-5.74]': Iris-virginica
| sepallength = '(5.74-6.46]'
| | petallength = '(-inf-2.18]': null
| | petallength = '(2.18-3.36]': null
| | petallength = '(3.36-4.54]': Iris-versicolor
| | petallength = '(4.54-5.72]'
| | | sepalwidth = '(-inf-2.48]': null
| | | sepalwidth = '(2.48-2.96]': Iris-virginica
| | | sepalwidth = '(2.96-3.44]': Iris-virginica
| | | sepalwidth = '(3.44-3.92]': null
| | | sepalwidth = '(3.92-inf)': null
| | petallength = '(5.72-inf)': null
| sepallength = '(6.46-7.18]'
| | sepalwidth = '(-inf-2.48]': null
| | sepalwidth = '(2.48-2.96]': Iris-virginica
| | sepalwidth = '(2.96-3.44]': Iris-virginica
| | sepalwidth = '(3.44-3.92]': null
| | sepalwidth = '(3.92-inf)': null
| sepallength = '(7.18-inf)': Iris-virginica
petalwidth = '(2.02-inf)': Iris-virginica
Zajęcia 3
Temat: Programowanie genetyczne, regresja symboliczna.
Zadania do wykonania
Proszę napisać program, który:
- wczyta plik z danymi w formacie CSV,
- zbuduje model regresji dla w/w danych dla wybranej zmiennej zależnej (pozostałe zmienne traktowane są jako niezależne),
- przyjąć błąd kwadratowy (lub średniokwadratowy) jako funkcję fitness,
- interfejs użytkownika powinien pozwolić na:
- wybór zmiennej zależnej z wczytanego zbioru zmiennych
- wybór operatorów arytmetycznych i funkcji wykorzystanych do budowy modelu, należy uwzględnić: +, -, *, / (chronione i niechronione), pow (chroniony i niechroniony), exp, log (chroniony i niechroniony), sin, cos,
- ustawienie parametrów programowania genetycznego: rozmiar populacji, maksymalna liczba pokoleń,
- wyświetlenie logu z postępu algorytmu (pokolenie + fitness najlepszego znalezionego rozwiązania),
- wyświetlenie uzyskanego modelu regresji wraz z fitnessem.
- dane do wykorzystania w zadaniu: R1.csv, Kj11.csv
Zajęcia 4
Temat: Zaliczenie projektów.
Zasady zaliczenia zajęć
Wykład
- Zajęcia zaliczane są kolokwium ze znajomości zagadnień poruszonych na wykładzie, które odbędzie się na ostatnim wykładzie.
- Student zostanie poinformowany o ocenie swojej pracy poprzez zamieszczenie informacji na tej stronie internetowej oraz w systemie eProto.
- Ostatnim dniem zaliczenia przedmiotu "w pierwszym terminie" jest ostatni dzień okresu zajęć dydaktycznych w semestrze, w którym realizowany jest przedmiot.
- Ostatnim dniem zaliczenia poprawkowego przedmiotu jest dzień zaliczenia poprawkowego określony w harmonogramie sesji ogłaszanym przez dziekanat.
- W szczególnych przypadkach prowadzący zajęcia może przesunąć termin zaliczenia, o czym informacja zostanie zamieszczona z minimum dwutygodniowym wyprzedzeniem na tej stronie.
Laboratorium
- Zajęcia zaliczane są na podstawie trzech jednoosobowych projektów.
- Tematy projektów są podawane podczas zajęć związanych z daną tematyką.
- Projekty są oceniane za:
- poprawność rozwiązania zadanego problemu,
- poprawność zastosowania wzorców projektowych i mechanizmów wynikających z paradygmatu programowania obiektowego,
- komentarze do kodu (min. klasy, metody i właściwości publiczne),
- obsługę błędów.
- Terminem realizacji każdego projektu jest termin kolejnych zajęć.
- Ocena końcowa jest prostą średnią arytmetyczną ocen cząstkowych zaokrągloną do najbliższej wielokrotności 0,5 zgodnie z zasadami zaokrąglania do najbliższej wartości.
- Student zostanie poinformowany o ocenie swojej pracy ustnie przez prowadzącego zajęcia, drogą mailową, poprzez zamieszczenie informacji na tej stronie internetowej lub system eProto.
- Aby zaliczyć przedmiot, oceny ze wszystkich projektów muszą być pozytywne.
- Za każdy dzień spóźnienia oddania pracy na punkt kontrolny, ocena cząstkowa jest obniżana o 0,1.
- Dopuszczona jest jedna nieusprawiedliwiona nieobecność studenta na zajęciach w czasie semestru. Nieobecność studenta na zajęciach nie zwalnia z obowiązku nadrobienia zaległości i terminowej realizacji projektu.
- Za każdą nieusprawiedliwioną nieobecność, z wyjątkiem sytuacji opisanej w p. 9, ocena końcowa jest obniżana o 0,5.
- Ostatnim dniem zaliczenia przedmiotu "w pierwszym terminie" jest ostatni dzień okresu zajęć dydaktycznych w semestrze, w którym realizowany jest przedmiot.
- Ostatnim dniem zaliczenia poprawkowego przedmiotu jest dzień zaliczenia poprawkowego określony w harmonogramie sesji ogłaszanym przez dziekanat.
- W szczególnych przypadkach prowadzący zajęcia może przesunąć termin zaliczenia, o czym informacja zostanie zamieszczona z minimum dwutygodniowym wyprzedzeniem na tej stronie.