RapidMiner podstawy Zagadnienia analizy i eksploracji danych wiążą się z doborem odpowiedniego oprogramowania. Wśród światowych liderów w tym obszarze są SAS, IBM SPSS, Knime, Weka, R oraz RapidMiner. Ostatnie cztery z wymienionych to rozwiązania dostępne na licencji open source, a ostatni z programów RapidMiner jest na pierwszym miejscu wśród wszystkich narzędzi wg. rankingu KDNuggets. Do realizacji zajęć zostanie wykorzystana ostatnia z aplikacji rozszerzona o zestaw odpowiednich dodatków możliwych do pobrania z RapidMiner Marketplace. UWAGA: Poniższe materiały pochodzą z opracowania: M. Blachnik, Materiały dydaktyczne do przedmiotu Sztuczna inteligencja i eksploracja danych biznesowych, WSB Dąbrowa Górnicza 2011. W niektórych miejscach poddano je niewielkiej modyfikacji. Podstawy Po uruchomieniu aplikacji RapidMiner na środku ekranu dostępne jest menu umożliwiające wybór projektu nad którym chcemy pracować, bądź też stworzenie nowego projektu. Dodatkowo mamy zestaw informacji i wiadomości ze świata związanych z zagadnieniami drążenia danych (ang. data mining) Rys. 1 Okno startowe programu RapidMiner Po wybraniu opcji stworzenia nowego projektu program przełącza się do widoku edycji procesu. Dostępny jest jeszcze widok wyników i danych [6].
Rys. 2 Widok edycji procesu Rys. 3 Widok wyników Pomiędzy dwoma trybami przełączamy się z poziomu paska ikon:
Zestaw ikon podstawowych Zestaw ikon związany z uruchomieniem/zatrzymanie m procesu eksploracji danych Widok edycji procesu Widok wyników Rys. 4 Pasek ikon programu RapidMiner Podstawowym widokiem, z którego najczęsciej będziemy korzystać jest widok edycji procesu. Umożliwia on zbudowanie w sposób graficznych grafu przepływu danych i to przy wykorzystaniu koncepcji przeciągnij i upuść(ang. drag and drop). Panel widoku projektu składa się z serii zakładek, z których najważniejszymi są: Zakładka Process w zakładce tej zostanie zbudowany i zaprojektowany proces przepływu i analizy danych Zakładka Tree Zakładka zawierająca widok zbudowanego procesu w postaci drzewa operatorów. Ułatwia on analizę przepływu danych udostępniając informacje o wielopoziomowych zagnieżdżeniach poszczególnych podprocesów Zakładka Operators zawierająca pogrupowane w postaci drzewa różne typy operatorów które można wykorzystać w procesie budowy projektu Zakładka Parameters zestaw parametrów konfiguracyjnych dla wybranego operatora Zakładka Repositories repozytorium projektów pogrupowane w strukturę katalogów. Aplikacja pozwala na definiowanie nowych własnych repozytoriów np. repozytorium sieciowego, dzięki czemu możliwy jest zdalny dostęp oraz wieloosobowa praca nad wspólnym projektem Zakładka Help zawiera pomoc dla aktualnie wybranego operatora, wraz z definicją jego parametrów i portów
Rys. 5 Widok zakładek programu RapidMiner. a) Zakładka Operators b) Zakładka Tree c) Zakładka Repositories, d) Zakładka Help e) Zakładka Parameters, f) Zakładka Process Podstawową koncepcją budowy aplikacji analizy danych w RapidMiner jest Operator, czyli bloczek odpowiedzialny za odpowiednie przekształcanie danych. Każdy z operatorów używanych w programie RapidMiner (RM) charakteryzuje się zestawem portów wejściowych, wyjściowych oraz
parametrów. Porty wejściowe znajdują się zawsze po lewej stronie wybranego operatora w widoku Process. Po jego prawej stronie znajdują się porty wyjściowe, natomiast zestaw parametrów operatora wyświetlany jest w zakładce Parameters. Przykładowy operator przedstawia Rys. 6 Zestaw parametrów operatora Port wejściowy Ikona statusu operatora Porty wyjściowy Rys. 6 Pzykładowy operator wraz z zestawem parametrów Dodatkowo każdy operator zawiera ikonę statusu informująca kolorem wykryte błędy lub nieprawidłowości związane z konfiguracją operatora. Pierwszy program Pierwszym etapem procesu analizy danych jest wczytanie danych, w tym celu w zakładce Operators wybieramy kolejno: Import -> Data -> Read CSV i metodą przeciągnij i upuść wprowadzamy wybrany operator do widoku procesu. Następnie z zakładki Parameters wybieramy Import wizard i postępujemy zgodnie z podanymi instrukcjami, czyli 1) Wskazujemy dokument zawierający dane i wybieramy polecenie Next 2) Wybieramy i zaznaczamy dane, które chcemy wczytać do programu RM 3) Dokonujemy adnotacji danych np. wskazując, które wiersze arkusza zawierają nazwy kolumn, które stanowią komentarz, a które zawierają dane
Name oznacza że dany wiersz należy traktować jako Nazwę kolum - oznacza że dany wiersz należy traktować jako zwykły zestaw danych 4) Najważniejszy jest ostatni krok, gdyż w nim dokonujemy definiowania szczegółów poszczególnych atrybutów np. wybierając typ atrybutu. Przykładowo czy ma to być atrybut nominalny symboliczny, czy też atrybut rzeczywisty, bądź też zawiera on inny typ danych jak tekst lub datę. Ponadto konieczne jest zdefiniowanie przeznaczenia atrybutu tzn. czy jest on etykietą, wagą itp., czy też jest to typowy atrybut (atrybut regularny). Zakończenie tego etapu spowoduje skonfigurowanie bloczka, jednak dane nie zostaną jeszcze wczytane. Nazwa atrybutu Typ danych Przeznaczenie danych, tzw. rola Dane
Po zakończeniu procesu konfiguracji należy podłączyć wyjście operatora z wyjściem całości systemu. Realizuje się to poprzez koncepcję przeciągnij i upuść, wybierając dany port wyjściowy i podłączając go do portu wejściowego kolejnego operatora lub na wyjście całości procesu. Rys. 7 Widok operatora i jego podłączenie do sieci W następnym kroku należy wydać polecenie Run process lub wcisnąć klawisz F11. W wyniku tego proces obliczeniowy zostanie uruchomiony, a wynik zostanie dostarczony na domyślne wyjście systemu. Teraz w zależności od konfiguracji systemu, albo zostaniemy automatycznie przekierowani do widoku wyników, albo też trzeba to zrobić ręcznie wybierając odpowiednią ikonę (patrz Rys. 4). Na chwilę obecną wynikiem działania systemu będzie wczytanie zbioru danych i możliwość ich podglądu. Jednocześnie pojawiają się dwie dodatkowe zakładki Results Overview, zawierająca krótkie podsumowanie informacji o wynikach oraz zakładki ExampleSet zawierającej informacje o wczytanych danych (Rys. 8). Przełączanie pomiędzy sposobami podglądu danych Zakres atrybutów Role atrybutów Nazwy atrybutów Typy atrybutów Statystyka atrybutów Rys. 8. Wynik wczytania zbioru danych German-Credit Liczba wartości brakujących Podstawowy podgląd zbioru danych (w środowisku RapidMiner zbiór danych nosi nazwę ExampleSet) przedstawia informacje zbiorcze o atrybutach w tym: Listing atrybutów i przypisanych im roli Nazwę atrybutu
Typ atrybutu, zawierający informacje o typie danych związanych z danym atrybutem (ilościowe Numeric, Polynominal zmienna symboliczna o wielu symbolach, Integer zmienna liczbowa typu integer) Podstawowe statystyki związane z atrybutem typu średnia, odchylenie standardowe (dla atrybutów ciągłych), moda, najmniej prawdopodobna pozycja (dla atrybutów symbolicznych). Zakres atrybutu, dla zmiennych ciągłych jest to przedział zmienności funkcji, a dla zmiennych symbolicznych częstości występowania poszczególnych wartości Możliwe jest również przełączenie się do innego typu podglądu danych. Do wyboru są: Meta Data View Podgląd meta danych (domyślny, omówiony powyżej), Data View bezpośredni podgląd danych, Plot View podgląd danych w postaci wykresów oraz Annotations podgląd notatek podpiętych do zbioru danych. Przełączając się do widoku danych (Data View) uzyskujemy wgląd bezpośrednio do zbioru danych. Przedstawia to rysunek Rys. 9 Rys. 9 Bezpośredni podgląd danych Jedyną dodatkową informacją zawartą w tym widoku jest informacja o numerze wiersza. Jest to identyczny widok w stosunku do widoku w programie MS Excel, gdzie poszczególne wiersze przedstawiają opis pojedynczych przypadków tutaj kredytobiorców, natomiast kolumny reprezentują poszczególne atrybuty. Kolejna z form widoku danych jest widok w postaci wykresów (Plot View). RM oferuje ich ponad 30 w tym zarówno wykresy 2D jak i 3D oferując przy tym różne formy wizualizacji jak wykresy równoległe, rozkład funkcji gęstości prawdopodobieństwa itp. Dodatkowo RM dostarcza narzędzi do
redukcji wymiarowości i wizualizacji danych wielowymiarowych. W tym celu wykorzystuje się algorytmu map samoorganizujących SOM. Przykładowy wykres przedstawia Rys. 10. Rys. 10 Wizualizacja danych z wykorzystaniem wykresu punktowego 2D, gdzie dodatkowo trzeci wymiar naniesiony jest w postaci barwy punktu. Każda z osi ma możliwość niezależnej konfiguracji w postaci wyboru nazwy atrybutu reprezentowanego dla danego wymiaru oraz koloru. Zadania 1. Poproś prowadzącego o podanie zbiorów danych które należy pobrać 2. Wczytaj do programu RM dane z pliku simple_sin.csv (Uwaga podczas wczytywania nie oznaczać żadnego wiersza jako nazwa kolumny. Nazwy kolumn zostaną określone automatycznie) 3. Narysuj wykres pokazuj zależność atrybutów att2 od att1 4. Wczytaj drugi zbiór danych simple_cos.csv i podłącz obydwa pliki do wyjścia programu 5. Narysuj wykres jak w pkt 3 również dla drugiego zbioru danych 6. Wczytaj z repozytorium zbiór Iris (Samples->data->Iris) 7. Przyjrzyj się danym z obydwu zbiorów korzystając z zakładki Data View i Meta Data Viev Określ: liczbę wektorów w każdym ze zbiorów liczbę atrybutów typ danych każdego z atrybutów w każdym zbiorze zakres zmienności poszczególnych zmiennych (w jakim przedziale one występują) w przypadku zbioru Iris zwróć uwagę, że na role poszczególnych atrybutów 8. Dodaj operator umożliwiający selekcję atrybutów, służy do tego
Następnie podłącz go do zbioru Iris i spróbuj odfiltrować atrybuty a3 i a4 (zwróć uwagę na typ filtrowania ). Wyjście podłącz do wyjścia procesu. Przeanalizuj uzyskane wyniki. Zwróć uwagę na liczbę atrybutów w zbiorze wyjściowym. Co odróżnia atrybuty id i label od pozostałych, że nie zostały odfiltorwane (UWAGA można wymusić ich usunięcie poprzez zaznaczenie opcji Include special attributes, jednak proszę obecnie jej nie włączać) UWAGA: tak utworzony zbiór danych pod odfiltrowaniu będzie nazywany poniżej jako zbiór1 9. Dołącz drugi filtr atrybutów (równolegle do pierwszego) i dokonaj jego konfiguracji tak aby odfiltorwały się jedynie atrybuty a1 oraz id (UWAGA należy włączyć opcję Include special attributes). Sprwdź poprawność uzyskanych wyników. UWAGA: Dodanie drugiego operatora selekcji atrybutów równolegle do pierwszego będzie wymagało podłączenia tego samego zbioru do kilku operatorów, RapidMiner domyślnie nie pozwala na takie rozwiązanie, gdyż z jednego portu wyjściowego może wychodzić tylko jedno połączenie. Aby uzyskac wymagany efekt wymagane jest zastosowanie operatora Multiply. Doda się on automatycznie jeśli podczas podłączania nowego operatora wciśniemy ikonkę która pojawi się przy porcie wejściowym UWAGA: tak utworzony zbiór danych pod odfiltrowaniu będzie nazywany poniżej jako zbiór2 10. Ze zbiór2 wybierz tylko te wektory, które dla atrybutu a1 są w przedziale 4.5 < a1 < 6. Do tego celu wykorzystaj operator Filter Examples UWAGA: w celu wykonania tego zadania ustaw conditiion class na attribute value filter. Warunki filtru przyjumją postać nazwa_atrybutu operator wartość, gdzie operator to np. symbole >,<,=,>=,<= itp. Warunki można łączyć za pomocą symboli && oraz czyli odpowiednio logiczne i oraz logiczne lub. Określ liczbę wektorów po odfiltrowaniu 11. Ze zbiór1 wylosuj 120 wektorów. Do tego zadania wykorzystaj operator Sample Sprawdź w wynikach poprawność wykonanej operacji 12. Połącz obydwa zbiory danych: zbiór1 oraz zbiór2 korzystając z operatora Join Jak wpływa parametr join type na uzyskane wyniki? 13. Ustaw parametr join type na right i podłącz zbiór wyjściowy na wyjście procesu. Sprawdź jak RM potraktował brakujące wartości jak je oznaczył 14. Odfiltruj brakujące wartości stosując operator Filter Examples ustawijąc jego opcje na no_missing_attributes
15. Zmień nazwę atrybutu Label na etykieta. W tym celu wykorzystaj operator 16. Zmień nazwy zmiennych a1,a3,a4 na zmienna1, zmienna3, zmienna4 w tym celu wykorzystaj operator Rename by Replacing 17. Często spotykanym problemem jest, aby określona zmienna przyjmowała wartości z określonego przedziału, zwykle [0-1] tzw normalizacja. Powyższe można zrealizować korzystając z operatora Normalize Dokonaj normalizacji zmiennej zmienna3 ustawiając jego parametry na Method: Range transform Dokonaj normalizacji atrybutu zmienna1. 18. Dla danych wczytanych w punkcie 2 do 5 zwróć uwagę na to, na kolumnę att1 w obydwu zbiorach. Co można o niej powiedzieć? 19. Dokonaj połączenia obydwu zbiorów danych w jeden, w którym będą wszystkie ze wspomnianych kolumn. Podobnie jak wyżej wykorzystaj operator Join. Uwaga do operator Join wymaga aby każdy ze zbiorów danych posiadał odpowiednie klucze. W naszym przypadku chcemy aby istniała relacja 1 do 1, w związku z powyższym, stosując nomenklaturę baz danych konieczne jest połączenie kluczy własnych. Do ich oznaczenia służą role atrybutów. Atrybut którego rolą jest ID stanowi klucz własny dla danego zbioru danych. Aby więc móc połączyć obydwa zbiory danych zdefiniuj odpowiednie atrybuty jako klucze własne nadając im rolę ID z wykorzystaniem operatora Set Role Atrybuty mogą mieć też inne role (np. Label, Prediction, Outlier, Weight itp), ale poznasz je na kolejnych zajęciach. Po zdefiniowaniu odpowiednich ról, konieczna jest zmina nazwy atrybutu att2 w jednym ze zbiorów, tak aby nie doszło do konfliktu nazw atrybutów (np. na att3), możesz tego dokonać za pomocą operatora Rename, na koniec dodaj operator Join i połącz obydwa zbiory danych. Jako wynik pokaż wykres reprezentujący zależność att2 att3 20. Stwórz nowy proces. Stary zapisz w repozytorium pod nazwą Wstęp 21. Wczytaj zbiór iris z repozytorium. Dokonaj normalizacji zmiennej a3, a następnie dla tej zmiennej zastąp wszystkie wartości z przedziału 0.3 do 0.7 na 0. W tym celu po normalizacji: Odfiltruj wszystkie wektory, które spełniają określone kryterium korzystając z Filter examples Dodaj operator pętli iterującej po wektorach: Loop Examples UWAGA: operator Loop Examples posiada specjalną właściwość, którą jest możliwość tworzenia podprocesu. Tworzenie podprocesu możliwe jest po dwukrotnym kliknieciu tego operatora, wówczas wchodzimy do nowego okna umożlwiającego
jego stworzenie. Drugą cechą operatora Loop examples jest wykorzystanie koncepcji makr. Makra są odpowiednikiem zmiennych w programie komputerowym. Operator Loop examples realizuje swoje zadanie poprzez zmianę wartości makra o nazwie example. Aby z jego pomocą dokonać modyfikacji wartości należy dodać w podprocesie operator Set Data umożliwiający edycję danych w zbiorze Następnie ustawić odpowiednią wartość attribute name, oraz value wg. założeń zadania. Z makra korzystamy ustawiając w miejscu example index wskaźnika nakazującego odczytanie indeksu wektora z wyżej wspomnianego makra poprzez wstawienie %{nazwa_makra}, czyli %{example} Wyjście operatora Set data podpinamy do wyjścia exa podprocesu Zaobserwuj, że obecnie na wyjściu z programu w miejscu atrybutu a3 występują tylko 0. Obecnie należy więc podmienić wektory z oryginalnego zbioru danych na wektory poddane uzyskane w wyniku modyfikacji. W tym celu zastosuj ponownie filtr wektorów Filter Examples dla oryginalnego zbioru danych po normalizacji, zaznaczając opcję Invert filter, dzięki czamu uzyskasz zbiór pozostałych wektorów, czyli takich dla których wartości atrybut a3 są mniejsze (mniejsze równe) od 0.3 oraz większe (większe równe) od 0.7 Połącz obydwa zbiory danych korzystając z operatora Append Na koniec laboratorium stwórz sprawozdanie odnosząc się do każdego z punktów pokazując odpowiednio do problemu konfiguracje operatora, uzyskane wyniki lub odpowiadając na zadane pytanie.