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.

  1. Wprowadzenie, materiał powiązane:
  2. Uczenie maszynowe (obowiązuje na zaliczeniu do drzew decyzyjnych włącznie) (pełna wersja slajdów)
  3. Programowanie genetyczne
  4. Kolokwium

Laboratorium

Oceny: grupa a, grupa b.

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

  1. Zajęcia zaliczane są kolokwium ze znajomości zagadnień poruszonych na wykładzie, które odbędzie się na ostatnim wykładzie.
  2. Student zostanie poinformowany o ocenie swojej pracy poprzez zamieszczenie informacji na tej stronie internetowej oraz w systemie eProto.
  3. Ostatnim dniem zaliczenia przedmiotu "w pierwszym terminie" jest ostatni dzień okresu zajęć dydaktycznych w semestrze, w którym realizowany jest przedmiot.
  4. Ostatnim dniem zaliczenia poprawkowego przedmiotu jest dzień zaliczenia poprawkowego określony w harmonogramie sesji ogłaszanym przez dziekanat.
  5. 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

  1. Zajęcia zaliczane są na podstawie trzech jednoosobowych projektów.
  2. Tematy projektów są podawane podczas zajęć związanych z daną tematyką.
  3. 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.
  4. Terminem realizacji każdego projektu jest termin kolejnych zajęć.
  5. 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.
  6. 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.
  7. Aby zaliczyć przedmiot, oceny ze wszystkich projektów muszą być pozytywne.
  8. Za każdy dzień spóźnienia oddania pracy na punkt kontrolny, ocena cząstkowa jest obniżana o 0,1.
  9. 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.
  10. Za każdą nieusprawiedliwioną nieobecność, z wyjątkiem sytuacji opisanej w p. 9, ocena końcowa jest obniżana o 0,5.
  11. Ostatnim dniem zaliczenia przedmiotu "w pierwszym terminie" jest ostatni dzień okresu zajęć dydaktycznych w semestrze, w którym realizowany jest przedmiot.
  12. Ostatnim dniem zaliczenia poprawkowego przedmiotu jest dzień zaliczenia poprawkowego określony w harmonogramie sesji ogłaszanym przez dziekanat.
  13. 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.