Ćwiczenie 12. Metody eksploracji danych Modelowanie regresji (Regression modeling) 1. Zadanie regresji Modelowanie regresji jest metodą szacowania wartości ciągłej zmiennej celu. Do najczęściej stosowanych metod regresji należą: 1) regresja liniowa, 2) regresja wielokrotna, 3) regresja logistyczna (model logistyczny). Ad 1) Zadanie regresji liniowej (ang. linear regression) polega na znalezieniu pojedynczej linii prostej, która w przybliżeniu opisuje relację pomiędzy pojedynczą ciągłą zmienną objaśniającą a pojedynczą ciągłą zmienną odpowiedzi. Ad 2) Zadanie regresji wielokrotnej (ang. multiple regression modeling), w miejsce prostej używa się powierzchni liniowej lub hiperpłaszczyzny zamiast linii prostej, jak to ma miejsce w regresji liniowej stosowanej dla ustalenia zależności pomiędzy zbiorem ciągłych zmiennych objaśniających a zbiorem ciągłych zmiennych odpowiedzi. Ad 3) Zadanie logistyczne polega na znalezieniu nieliniowej ciągłej funkcji, np. funkcji wykładniczej, która przypisuje określonym wartościom x i (obserwacjom) tworzącym wektor x, wartość funkcji przynależności do określonej klasy. Znaleziona funkcja logistyczna przyjmuje wartości z przedziału [0, 1], stąd może być interpretowana jako prawdopodobieństwo wystąpienia określonego zdarzenia przy znanej obserwacji wyrażonej poprzez zmienne pomiarowe x i. Regresja logistyczna ma przewagę nad regresją liniową i wielokrotną, gdzie zmienna wyjściowa może przyjmować dowolne wartości i nie może być bezpośrednio interpretowana jako prawdopodobieństwo. Literatura: 1. Norman Draper, Hary Smith, Applied Regression Analysis, Wiley, New York 1998. 2. Fredereic Mosteller, John Tukey, Data Analysis and Regression, Addison-Wesley, Reading, MA 1977. 3. Wikipedia: Regression Analysis, http://en.wikipedia.org/wiki/regression_analysis 4. Wikipedia: Regresja logistyczna, http://pl.wikipedia.org/wiki/regresja_logistyczna Ćwiczenie 1 Zastosowanie systemu Weka 1. Otwórz Explorer w systemie Weka. 2. Wybierz Pre-process, a następnie otwórz plik z danymi. W tym celu otwórz plik Open File -> cereals.arff. 1
3. Następnie naciśnij Classify, a potem wybierz Test options -> Suplied test set. Powinieneś uzyskać następujące okno: 2
4. Następnie naciśnij Set.. Gdy otworzy się formatka, jak poniżej. Naciśnij buton Open file. W tej formatce i wybierz plik train-ache-t3abl2u3.arff, a następnie stosowne wartości do przeprowadzenia testu. Następnie naciśnij Close dla zamknięcia okna. 5. Wybierz metodę weka -> classifiers -> functions -> LinearRegression z drzewa hierarchii pod uprzednim naciśnięciu Choose. 6. Następnie naciśnij słowo LinearRegression. Pojawi się edytor, pozwalający na ustawienie parametrów metody. Po wyświetleniu edytora zmień opcję attributeselectionmethod na No attribute selection. Powinieneś otrzymać okno: 3
7. Naciśnij buton OK. dla zamknięcia okna, a następnie kliknij na Start dla uruchomienia metody MLR. 4
8. Naciśnij prawy klawisz myszy na niebieską belkę i wybierz Visualize classifier errors. Uzyskasz wykres błędu predykcji, jak na rysunku poniżej. Zastosowanie systemu RapidMiner Ćwiczenie 2 1. Uruchom narzędzie RapidMiner 5.3 2. Wczytaj dane plik credit_scornig, które dotyczą sprawdzenia zwrotu kredytów. Celem ćwiczenia jest przewidzenie, czy kredytobiorca zwróci pobrany kredyt DEFAULT (Y lub N) w oparciu o dwa parametry business usage (busage) oraz liczbę dni przekroczenia terminu zwrotu. Próbka zawiera 100 przykładów. Uwaga. Ustaw kolumnę DEFAULT na Label. 3. Rozdziel dane przy użyciu operatora Split Validation na dwa zbiory: jeden, który będzie przesłany do badania przy użyciu operatora Regression operator, oraz drugi, który będzie użyty do uczenia. Przyjmij, że zbiór uczący zawiera 30% danych zbioru wejściowego. 5
4. Dodaj operator Logistic Regressionm w oknie training operatora Split validation, czyli naciśnij dwukrotnie przycisk myszy w miejscu pokazanym na rysunku poniżej i następnie wybierz Logistic Regression. 5. Dodaj operator Apply Model w oknie operatora Split validation operator, czyli naciśnij dwukrotnie przycisk myszy w miejscu pokazanym jak na rysunku powyżej, i wybierz Apply Model. 6. Dodaj operator Performance evaluation w oknie testing operatora Split validation operator, tak jak to pokazano na rysunku powyżej, a następnie wybierz operator Performance evaluation. 7. Połącz wszystkie punkty, tak aby uzyskać przepływ uzyskany poniżej. 6
8. Uruchom model naciskając na niebieską strzałkę w głównym menu i zobacz rezultaty. W szczególności wskaż na Model Kernel, który pokazuje współczynniki dla dwóch wartości przewidywanych numerów transakcji oraz wartości liczby dni przekroczenia. Wybierz też macierz pomyłek (confusion matrix) dla operatora Accuracy sensitivity. Oznacz AUC dla zbadania krzywej ROC, tak jak to pokazano poniżej. Przyjmując, że rating dla zbioru testującego wynosił 30% krzywa ROC powinna uzyskać wartość 0.863, co jest akceptowalnym rezultatem dla tego rodzaju badań. 7
Zadanie 1 Wykonaj ćwiczenie 1 dla zbioru danych adult.arff, którym jest zbiór osób podany przez U.S. Census Bureau. Celem badania przy użyciu regresji logistycznej (wybierz Logistic zamiast LinearRegression) jest znalezienie cech demograficznych, które wskazują, czy dana osoba osiągnęła roczny dochód powyżej 50 000 USD (zmienna dochód income). Ogranicz badanie tylko do zmiennej kapitał netto (cap net), która jest równa różnicy zmiennych zysk kapitału i strata kapitału wyrażonej w dolarach. Ponieważ w zbiorze danych nie ma danych dla osób powyżej 50 000 USD, dokonaj analizy dla 3000 USD. Powinieneś uzyskać po kategoryzacji wyniki regresji logistycznej względem kapitał netto powinny zawierać: Logistic Regression Table Predictor Coef SE Coef Capitalgain < 5000 $ -0.136894 0.0943471 Capitalgain >= 5000 $ Capitalloss 3.67595 1.46472 0.0968562 0.0613110 Teraz można zastosować wzór na regresję logistyczną i obliczyć wymagane prawdopodobieństwa. Zadanie 2 Wykonaj ćw. 2, tzn. korzystając z systemu RapidMiner zbuduj model regresji logistycznej dla zbioru credit_scoring. Uzyskaj krzywą ROC, tak jak to pokazano powyżej. 8