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:
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
Widok edycji procesu Widok wyników Zestaw ikon związany z
uruchomieniem/zatrzymanie
m procesu eksploracji danych
Zestaw ikon
podstawowych
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
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
Port wejściowy
Porty wyjściowy
Zestaw parametrów operatora
Ikona statusu operatora
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.
Name oznacza że dany
wiersz należy traktować
jako Nazwę kolum
- oznacza że dany wiersz
należy traktować jako
zwykły zestaw danych
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).
Rys. 8. Wynik wczytania zbioru danych German-Credit
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
Role atrybutów Nazwy atrybutów Typy atrybutów Statystyka atrybutów
Zakres atrybutów
Liczba wartości
brakujących
Przełączanie pomiędzy
sposobami podglądu
danych
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.