EDzGBD/L/z2

From WikiZMSI

< EDzGBD | L

Na zajęciach

  • Należy wykorzystać skrypt MATLAB-owy breastCancerRead.zip, który wczytuje dane (identyfikator pacjentki usunięty; zmienna Y po wykonaniu skryptu przebywa jako ostatnia kolumna; wartości 1 -> nowotwór złośliwy M, 2 -> nowotwór łagodny B).
  • Zaimplementować 3 skrypty obliczające różne wersje funkcji nieczystości (impurity function) jako: błąd klasyfikacji, entropię, indeks Gini'ego.
  • Zaimplementować skrypt budujący rekurencyjnie pełne drzewo CART (dla podanego na wejście zbioru danych i wybranej funkcji nieczystości).
  • Rozszerzyć skrypt budujący drzewo CART wprowadzając dodatkowy parametr - maksymalną głębokość drzewa.
  • Zaimplementować skrypt, który stworzy ciąg drzew o coraz większej głębokości 1, 2, ..., aż do maksymalnej głębokości pełnego drzewa, a następnie wybierze najlepsze z nich, tj. te dla którego otrzymany zostanie najmniejszy błąd klasyfikacji na danych testowych. Sporządzić wykres eksperymentu (w układzie głębokość, błąd testowy).

Do domu

Dla przyporządkowanego sobie zbioru danych wykonać:

  • Zbudować pełne drzewo CART i przetestować dokładność klasyfikatora (także czułość i specyficzność).
  • Przyciąć drzewo za pomocą ograniczania głębokości (wraz z wykresem).
  • Zaimplementować skrypt wybierający optymalne przycięcie pełnego drzewa, mając podaną wartość kary za 1 liść (jako parametr). Skrypt powinien być wyposażony w przełącznik: ocenianie wszystkich poddrzew lub ocenianie tylko tych poddrzew, które powstają poprzez dodawanie najlepszego węzła (zachłannie).
  • Zaimplementować skrypt wybierający optymalne przycięcie pełnego drzewa, mając dany zbiór kandydatów na wartość kary za 1 liść oraz wykonując procedurę kroswalidacyjną. Wykorzystać skrypt z poprzedniego punktu.
  • Sporządzić wykres eksperymentu przycinania w układzie: wartość kary (oś malejąca), błąd na danych testowych.