Pierwsze kroki z Alteryx [artykuł]

paź 30, 2017

Analiza Danych

Business Intelligence

Data Science

Alteryx

Big Data

banery data science

Współczesne przetwarzanie danych opiera się w głównej mierze na automatycznych procesach projektowanych przez specjalistów. Rozwój tzw. Big Data skupiającego się na dużych zbiorach rekordów, pogłębił jeszcze bardziej potrzebę posiadania wyspecjalizowanych narzędzi, które będą jednocześnie nie tylko potężne ale również wszechstronne. Dlatego preferowane są zazwyczaj dwa podejścia:

  • używanie bezpośrednie języków programowania/analizy danych (z królującymi językami typu Python i R)
  • używanie gotowych produktów, mających w domyśle zaoszczędzić czas nauki oraz czas budowy modeli, których przedstawicielem jest np: Alteryx

 

Do głównych zalet systemu Alteryx należą:

  • wszechstronność – kilkadziesiąt narzędzi do analiz predykcyjnych, statystycznych i przestrzennych,  a także duża liczba modułów służących do preprocessingu na każdym etapie
  • możliwość przerabiania i łączenia wielu źródeł danych jednocześnie
  • prostota i przejrzystość  – współpracujemy z programem po przez predefiniowane bloki, które możemy zarówno specjalizować w wygodnych interfejsach graficznych jak i łączyć w kaskady tworząc złożone przepływy danych
  • istnienie możliwości podglądu przetwarzanych danych po każdym z etapów i szybka weryfikacja wyników
  • współpraca z narzędziami warstwy prezentacji danych oraz raportowania np: Tableau

Program Alteryx w obecnej formie istnieje od 2010 r. i jest jednym z najczęściej wybieranych rozwiązań z zakresu Data Science oraz Business Intelligence.

 

Opis zadania i danych

W tym miejscu pokażemy jak w szybki i przejrzysty sposób zbudować swój pierwszy przepływ danych przy użyciu programu Alteryx. Naszym zadaniem jest zaprojektowanie systemu który w każdej ze specyficznych grup wyliczy podstawowe parametry z dostępnych danych:

  • wartość średnią
  • wartość minimalną oraz maksymalną wraz z odpowiadającymi im polami identyfikującymi

 

Chcemy również otrzymać wszystkie wyniki w jednej, spójnej postaci tabelarycznej.

Jako przykładowy zbiór danych został wybrany zestaw o zużyciu energii przez budynki rządowe w Nowym Jorku. Dane możemy pobrać na stronie kaggle :

https://www.kaggle.com/residentmario/nyc-building-energy-usage

Specyfikując zadanie względem wybranego zbioru danych otrzymujemy:

  • naszymi specyficznymi grupami będą dzielnice (atrybut Borough)
  • obliczeniom poddajemy zużycie energii (atrybut FY15 Energy Usage (MMBTU) [Utility energy, excluding Fuel Oil])
  • polami identyfikującymi dla wartości minimalnej i maksymalnej w każdej grupie będą nazwy budynków (atrybut Building Name)

 

Rozwiązanie zadania w systemie Alteryx

1. Na wstępie warto odnieść się do jednej z wymienionych zalet systemu Alteryx – dane po każdym z etapów można podglądać używając komponentu Browse z pakietu In/Out, dzięki czemu możemy w łatwy sposób weryfikować ewentualne błędy. Wystarczy podpiąć się wspomnianym narzędziem pod wyjście interesującego nas procesu.

2. Po otworzeniu programu Alteryx z górnego panelu o nazwie >In/Out wybieramy moduł Input Data i przeciągamy go do Workflow :

3. Widzimy że pojawiła nam się informacja o błędzie – musimy teraz wybrać plik z danymi z którego chcemy skorzystać. W naszym przypadku będzie to DCAS_Managed_Building_Energy_Usage.csv

Klikamy lewym przyciskiem myszy na wybranym module i widzimy że otworzyło się nam po lewej stronie okno ze szczegółami. Wybieramy z niego przycisk rozwijany :

Następnie klikamy File -> DCAS_Managed_Building_Energy_Usage.csv (należy uprzednio znaleźć plik w odpowiednim folderze)

4. Z przybornika Preparation wybieramy narzędzie Select a następnie łączymy z Input Data. Po kliknięciu na ikonę podłączonego modułu wybieramy potrzebne nam pola Building Name, Borough oraz FY15 Energy Usage (…). Ostatni wymieniony parametr zmieniamy z typu V_String na Double (posłuży do obliczeń) oraz na jakąś przyjemniejszą nazwę np : Energy Usage w polu rename.

Z pakietu Transform wybieramy trzy obiekty Summarize i łączymy ze wstawionym modułem Select. Następnie przystępujemy do specjalizacji poszczególnych modułów po przez kliknięcie na nich i zmiany w lewym oknie:

a) Wartość maksymalna (Max) – Wybieramy Borough, a następnie klikamy Add -> GroupBy (zapewniamy w ten sposób grupowanie po dzielnicach). Musimy jeszcze znaleźć maksymalną wartość zużycia energii w każdej grupie. W tym celu wybieramy parametr Energy Usage oraz używamy Add -> Max.

b) Wartość średnia (Avg) – analogicznie jak wyżej grupujemy po Borough i znajdujemy średnie zużycie energii w każdej grupie przez wybór Energy Usage a następnie Add -> Numeric -> Avg

c) Wartość minimalna (Min) – procedura analogiczna jak w a)

5. Musimy teraz znaleźć nazwy obiektów odpowiadające maksymalnemu i minimalnemu zużyciu energii w każdej grupie. W tym celu możemy zastosować element z Join z pakietu Join, który pozwoli przy pomocy łączenia typu inner join znaleźć odpowiednie rekordy (mamy pewność że nie będzie wartości pustych, ponad to operacje min/max nie powodują zmian wartości, więc możemy porównywać liczby zmiennoprzecinkowe):

  • Dla maksimum  – łączymy elementy Summarize i Select z Join pod wejścia L i R. Następnie w oknie po lewej stronie wybieramy pole Join by Specific Fields i dla jednej części wybieramy Max_Energy usage a dla drugiej Energy usage. W oknie poniżej zaznaczamy Borough, Max_Energy usage i Building Name.
  • Dla minimum – postępujemy analogicznie, dla jednej części wybieramy Energy usage a dla kolejnej Min_Energy usage. Następnie zaznaczamy Building Name, Borough, Min_Energy usage.

6. Musimy w tej chwili zająć się zmianą nazw budynków na bardziej adekwatne przed kolejnymi złączeniami. W tym celu pobieramy z pakietu Preparation dwa obiekty Select i łączymy je z wcześniejszymi obiektami typu Join (jako wyjście wybieramy inner join oznaczone przez J):

W lewej części okna zmieniamy w polu Rename w odpowiednich obiektach Select nazwy Building Name na Building with max energy usage oraz Building Name na Building with min energy usage.

7. Mamy obecnie trzy zbiory, musimy wykonać więc jeszcze dwa złączenia.

a) Niech pierwszym będzie złączenie wartości maksymalnych ze średnimi. W tym celu bierzemy nowy element Join i podpinamy się jak niżej:

W wybranym elemencie specyfikujemy że chcemy złączyć oba zbiory po atrybucie Borough. Następnie wybieramy kolumny Borough, Max_Energy usage, Building with max energy usage oraz Avg_Energy usage.

b) Ostatnim złączeniem jest unifikacja powyższej relacji z wartościami minimalnymi. Wybieramy nowy Join i łączymy jak na rysunku:

Wybieramy w lewym oknie złączenie w obu przypadkach po Borough a następnie zaznaczamy pola Min_Energy usage, Max_Energy usage, Building with min energy usage, Building with max energy usage, Borough, Avg_Energy usage :

Możemy także w celu zapewnienia odpowiedniej kolejności atrybutów, wybrać każdy z nich i strzałkami przesuwać w górę lub w dół (koło panelu Options)

8. Ostatnim elementem procesu jest decyzja o losie przygotowanych danych. W naszym przypadku chcemy je zapisać do zewnętrznego pliku dajmy na to .csv. W tym celu z przybornika In/Out wybieramy obiekt Output Data i łączymy do naszego ostatniego elementu :

W lewym oknie wybieramy nazwę pliku (np: Output) oraz format zapisu Comma-Delimited Text Files :

Po uruchomieniu programu zieloną strzałką w górnym panelu i otworzeniu utworzonego pliku otrzymujemy :

Bibliografia:

https://www.youtube.com/user/alteryx

https://community.alteryx.com/?_ga=2.12983863.1474708735.1508949154-1124299137.1508949154