1 Projekt 1 DATA MINING 2016 • Celem projektu jest

Transkrypt

1 Projekt 1 DATA MINING 2016 • Celem projektu jest
1
Projekt 1 DATA MINING 2016
• Celem projektu jest implementacja metody MDR (multifactor dimensionality reduction) w
celu wyznaczenia najbardziej istotnych interakcji między zmiennymi.
• Opis algorytmu podajemy na końcu tego tekstu. Dodatkowe informacje można znaleźć w
artykułach:
– Ritchie M D, Hahn L W, Roodi N, Bailey L R, Dupont W D, Parl F F i Moore J H
(2001). "Multifactor-Dimensionality Reduction Reveals High-Order Interactions among
Estrogen-Metabolism Genes in Sporadic Breast Cancer."The American Journal of Human Genetics.
– Motsinger A A, Ritchie M D (2006). "Multifactor dimensionality reduction: An analysis
strategy for modelling and detecting gene - gene interactions in human genetics and
pharmacogenomics studies."Human Genomics.
• Specyfikacja:
– Program zapisujemy w pliku nazwisko.R. W środku znajduje się własna implementacja metody MDR. Cały kod zapisujemy wewnątrz klamer rozpinających definiowaną
funkcję. Szablon na stronie przedmiotu.
– Zakładamy, że w danych nie ma braków danych. Wektor odpowiedzi y przyjmuje wartości w zbiorze {0, 1}. Każda kolumna ramki danych X odpowiada zmiennej objaśniającej. Wszystkie zmienne objaśniające przyjmują wartości w zbiorze {0, 1, 2}. Zakładamy, że liczba zmiennych jest większa niż 1. Dodatkowe parametry metody MDR (skalary) muszą spełniać następujące założenia: tresh_risk > 0, tresh_acc ∈ (0, 1), K ∈
{2, 3, 4, ..., liczba obserwacji}.
– Jeżeli zostaną podane dane, które nie spełniają powyższych założeń program powinien
przerwać działanie i opisać występujący błąd. Wyjątek stanowi sytuacja, gdy za parametr K zostanie przyjęta liczba naturalna większa od liczby obserwacji. Wówczas
program powinien przyjąć do dalszych obliczeń wartość K = liczba obserwacji oraz
wystosować ostrzeżenie dotyczące zaistniałej sytuacji.
– Jeżeli kolumny ramki danych X nie mają podanych nazw należy nadać im nazwy V i,
gdzie i jest numerem kolumny.
– Funkcja powinna zwracać ramkę danych o trzech kolumnach nazwanych var1, var2 oraz
dokladnosc. Kolumny pierwsza i druga są wektorami napisów, zaś kolumna trzecia to
kolumna numeryczna. Zwrócona ramka danych ma być uporządkowana według malejących wartości kolumny dokladnosc.
• We własnej implementacji NIE MOŻNA korzystać z gotowych funkcji dla metody MDR.
• Projekty realizowane są samodzielnie! Plagiat skutkuje zerową liczbą punktów i brakiem
możliwości poprawy!
• Ocena projektu opiera się na podstawie: poprawności wyników, czasu działania, obsługi
błędów i wyjątków.
Opis metody MDR:
Poniższy opis opiera się na założeniach poczynionych w specyfikacji. Załóżmy, że dysponujemy
próbą uczącą (y, Xp , Xq ) , gdzie y jest 0−1 wektorem odpowiedzi, a Xp i Xq są zmiennymi objaśniającymi przyjmującymi wartości w zbiorze {0, 1, 2}. Taki rodzaj danych jest spotykany w badaniach
genetycznych. Wektor y informuje o tym, czy obserwacja (pacjent) cierpi na ustaloną chorobę, czy
2
nie (0 − 1, nie-tak ). Każda zmienna jest zaś informacją o genotypie pacjenta (homozygota dominująca, heterozygota, homozygota recesywna) występującym w określonym miejscu DNA. Metoda
MDR pozwala na wybór tych par zmiennych, których łączny efekt ma wpływ na status chorobowy.
Niech nijk oznacza liczność zbioru obserwacji dla których Xp = i, Xq = j i y = k.
Budowa reguły klasyfikacyjnej na podstawie próby uczącej:
• dla każdej wartości (i, j) ∈ {0, 1, 2}2 wyznacz wartość rij =
nij1
nij0
• dla ustalonej wartości parametru tresh_risk reguła klasyfikacyjna wyznaczona na podstawie
metody MDR dla zmiennych Xp i Xq przyjmuje postać:
dtresh_risk : {0, 1, 2}2 → {0, 1} ; dtresh_risk (i, j) = I (rij ≥ tresh_risk)
Słownie: jeśli mamy obserwację dla której zmienna (Xp , Xq ) przyjmuje wartość (i, j) to klasyfikujemy ją do klasy 1 jeżeli rij ≥ tresh_risk i 0 w przeciwnym przypadku.
Uwaga: Zastanów się co zrobić, gdy dla pewnych wartości (i0 , j0 ) wartości ni0 j0 1 = ni0 j0 0 = 0.
Funkcja nazwisko_MDR, której implementacja ma się znajdować w pliku nazwisko.R ma zwrócić ramkę danych informującą, które pary zmiennych mają łącznie największy wpływ na zmienną
odpowiedzi. Jak to zrobić? Dla każdej pary zmiennych (Xp , Xq ) z ramki X wyznacz wartość
wskaźnika dokładności metodą K−krotnej kroswalidacji dla metody MDR przy ustalonej wartości
tresh_risk. Parę zmiennych (Xp , Xq ) uznajemy za aktywną jeżeli wyliczona wartość dokładności
przekracza ustalony próg tresh_acc - każda taka para powinna znaleźć się w wynikowej ramce danych, tzn. w kolumnach var1 i var2 wypisujemy nazwy wybranej pary zmiennych, zaś w kolumnie
dokladnosc wartość dokładności dla tej pary wyznaczoną metodą K-krotnej kroswalidacji.
Przykładowe dane wejściowe można znaleźć na stronie przedmiotu pod nazwą przykladowe_dane.txt.
Pierwsza kolumna wczytanej ramki odpowiada wektorowi odpowiedzi y zaś pozostałe kolumny odpowiadają ramce X.

Podobne dokumenty