To jest stara wersja strony!


Opis

Krzysztof Morcinek, krzysztof.morcinek@gmail.com

Uczenie maszynowe w RBS, jako metoda rozbudowy/rozszerzania istniejącego systemu o nowe reguły, modyfikacja reguł, przykłady.

Historia spotkań

Projekt

  • Projekt pisany jest w języku Java w edytorze Eclipse.
  • ID3 opis mojej implementacji:
    • Do zbioru uczącego będziemy się odwoływać poprzez indeksy, do funkcji BuildTree() przekażemy listę indeksów opisujących przykłady na podstawie których będzie generowany węzeł. Funkcja BuildTree() pobiera jeszcze zbiór niewykorzystanych testów oraz etykietę większościową dla danego drzewa, a zwraca liść lub węzeł.
    • Sprawdzamy Kryterium Stopu - wtedy zwracany jest liść z przypisaną mu etykietą, kryteria:
      • Brak przykładów
      • Tylko jedna kategoria docelowa znajduje się w przykładach
      • Brak testów
    • Wybieramy test na podstawie kryterium Przyrostu Informacji (Information_entropy)
    • Tworzymy węzeł i przypisujemy do niego wybrany test i kategorię większościową
    • W węźle tworzymy słownik w którym każdemu rezultatowi 'r' wybranego testu odpowie węzeł do którego rezultat prowadzi. Nowy węzeł tworzymy poprzez wywołanie rekurencyjnej funkcji buildTree(), do której przekażemy zbiór przykładów spełniających rezultat 'r', kategorę większościową dla tego zbioru oraz zbiór testów pomniejszony o właśnie użyty test.
  • C4.5 opis mojej implementacji:
    • Problemem poprzedniego algorytmu była zbyt duża ilość wartości, które mogłyby być pogrupowane. Rozwiązaniem jest np. agregacja atrybutów porządkowych. Godziny, dni tygodnia oraz miesiące nadają się do tego doskonale.
    • Używamy dyskretyzacji zstępującej, próg wybierając również na podstawie kryterium Przyrostu Informacji (Information_entropy).
    • Atrybuty są przekształcane na te o mniejszej ilości wartości i poddane z nowymi atrybutami jako wejście algorytmu omówionego powyżej czyli ID3.
    • Czasami udaję się logicznie podzielić (patrz przykład 1), czasami jednak losowy zbiór uczący nie pozwala dobrze zagregować (patrz przykład 2).
    • Najważniejszym parametrem jest tutaj próg entropii (m_entropyTreshhold). Określa od jakiej różnicy informacji oraz entropii występującej w podzielonym zbiorze, próg podziału będzie zaakceptowany.

Testy praktyczne

Sprawozdanie

  • Projekt powstawał etapami na bazię książki „Systemy uczące się” Pawła Cichosza. Najpierw skonstruowany został algorytm ID3 w języku C#. Następnie wobec wymienionych poniżej wad, rozszerzony został o przekształcanie atrybutów (a dokładnie Dyskretyzacje zstępującą). Na koniec musiał całość przerobić na Javę.

Materiały

Głównie:

Książka Systemy uczące sie. Cichosz P., WNT, Warszawa, 2000, zwłaszcza cały rozdział 3. Indukcja drzew decyzyjnych. oraz 7. Przekształcanie atrybutów.

ID3_algorithm C4.5_algorithm Decision_tree Drzewo decyzyjne na Wikipedii

Mniej:

Wiele linków o ML z Politechniki Poznańskiej

SWI/IFIP Machine Learning Education Strona zawiera niemalże wszystkie rodzaje materiałów edukacyjnych na temat ML. Przeznaczona jest jednocześnie dla fachowców, studentów jak i dla laików. Wiele linków i dostęp do danych testowych ML

Wodzislaw Duch Home page Zawiera dużo ciekawych linków, informacji na temat lokalnych metod uczenia się, algorytmów ML

pl/miw/miw08_rbs_ml.1213613908.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0