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.