SAD -Porównywanie klastrowań i EM

Dziś spróbujemy swoich sił w modelach związanych z mieszankami rozkładów. Slajdy są tu.

Na początek zainstalujmy pakiet mixtools:

install.packages(“mixtools”)
library(“mixtools”)

1. Zapoznaj się ze zbiorem faithful

data(faithful)

summary(faithful)

plot(faithful)

2. Używając funkcji normalmixEM, dopasuj modele mieszane do jednowymiarowych zmiennych eruptions i waiting oraz do ich rozkładu łącznego (mvnormalmixEM).

3. Wygeneruj zbiór danych z rozkładu mieszanego 2 wymiarowego o tych samych wariancjach lecz zróżnicowanych wagach (p1=0.9), zrekonstruuj składowe przy pomocy funkcji EM, użyj też metody k-średnich

4. Wygeneruj zbiór danych z rozkładu mieszanego 2 wymiarowego o różnych wariancjach (sigma1=5xsigma2) lecz zrównoważonych wagach (p1=p2), zrekonstruuj składowe przy pomocy funkcji EM, użyj też metody k-średnich

5. Wygeneruj zbiór danych z dwóch składowych o różnych średnich. Zwiększaj wariancję dopóty, dopóki jesteś w stanie zrekonstruować dobrze parametry rozkładu.

6*. Dla sytuacji, gdzie dobrze rozpoznajesz parametry rozkładów metodami k-średnich i EM, spróbuj estymować zbyt wiele klastrów i porównaj, która z funkcji oceny z wykładu (Rand index, Jaccard index, Variation of Information) najlepiej oddaje rosnącą różnorodność wyników klastrowania.

Wyszukiwanie skupień czyli klastrowania

Dziś druga część rozdziału 10. poświęcona grupowaniu przy pomocy metod k-średnich i hierarchicznej klasteryzacji.

Tekst w książce od str. 385 (rozdz. 10.3). Lab od str. 404 (rozdz. 10.5 par. 2) oraz lab 10.6 (str. 407) dot. ekspresji genów z nowotworów.

Można też spróbować wygenerować sobie zbiór danych, dla którego single linkage jest dobry (np podobny do opisanego tutaj), żeby zobaczyć jak na nim działa k-średnich i single-linkage.

Jeśli ktoś chce poszerzyć swoją wiedzę o inne metody, to można załadować w R pakiet cluster i np. obejrzeć metody pam (partitioning around medoids) lub fanny (fuzzy k-means).

 

 

 

Zadanie zaliczeniowe 2 – 2015

Mamy dane o pacjentach (każdy wybiera sobie ten sam numer co w poprzednim zadaniu). Pacjenci pochodzą z 5 różnych grup: zdrowi i 4 różne grupy chorych. Naszym zadaniem jest:

  • zbudować klasyfikator przewidujący czy pacjent jest zdrowy czy chory
  • Zudować klasyfikator, przewidujący z której grupy pochodzi dany chory pacjent
  • Porównać klasyfikatory używającej jednej z prostych  metod (LDA, KNN, lub drzewo decyzyjne) z lasami losowymi. Skuteczność chcemy oceniać przy pomocy krzywej ROC w eksperymencie walidacji krzyżowej lub re-próbkowania
  • dokonać predykcji nowych 20 pacjentów (mają oni daną grupę “group-?”)
  • Przeanalizować dane metodą składowych głównych i sprawdzić, czy zmienne, które są istotne dla klasyfikacji (w lasach losowych) są też istotne w wyznaczaniu składowych głównych.

Dane obejmują numer pacjenta, jego grupę (healthy, group-(0,1,2,3), lub group-? do predykcji) i 100 różnych pomiarów (np. zazwartości różnych białek w osoczu krwi).

Wyniki w postaci raportu opisującego co Państwu udało się zdziałać proszę przysyłać do mnie (bartek@mimuw.edu.pl) z dopiskiem (SAD-2) w tytule do 7. czerwca. Oprócz raportu prosiłbym o plik tekstowy, który przypisuje pacjentom nieopisanym numer prawdopodobnej grupy.

Ja wtedy opublikuję rzeczywiste etykiety pacjentów o grupach nieznanych (8. czerwca), a Państwo przygotują krótkie prezentacje (max 5 min) o swoich wynikach (już z uwzględnieniem, czy Państwa klasyfikatory działały dobrze, czy źle.

powodzenia!