TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH

Die Seite wird erstellt Linus Walter
 
WEITER LESEN
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
Innovation. Menschen. Zukuft.

H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN:

TABLEAU DASHBOARDS MIT
H2O AUF DIE NÄCHSTE
INFORMATIONSSTUFE HEBEN
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
ANOMALIEERKENNUNG IN DER PRODUKTION
Sie nutzen Tableau, wollen sich aber nicht nur auf deskriptive Analysen be-
schränken oder nutzen AutoML, arbeiten aber daran, die Ergebnisse in ihre Ent-
scheidungsprozesse zu integrieren?
Wir zeigen Ihnen in diesem Tutorial wie Sie die beiden Lösungen H2O AI und
Tableau Desktop zu einem automatisiert laufenden Dashboard kombinieren.

1. VORAUSSETZUNG
Für die Durchführung der Integration benötigt man folgendes:

  • Zugriff auf Driverless AI von H2O AI
  • Tableau Desktop und Tableau Prep

Sie sollten mit den Grundlagen von Driverless AI und Tableau sowie Python
vertraut sein.
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
2. EINRICHTUNG VON TABPY
An der Schnittstelle zwischen beiden Tools wird Python-Code ausgeführt. Um dies
umzusetzen wird das Open-Source-Tool TabPy genutzt. Hier erfahren Sie mehr dazu:
https://github.com/tableau/TabPy

Zuerst wird auf Ihrem System pip installiert und geupdatet:

   python -m pip install --upgrade pip

Anschließend kann tapy installiert werden:

   pip install tabpy

Falls Sie keine großen Datenmengen verwenden, können Sie TabPy mit den Stan-
dardeinstellungen starten:

   tabpy                                                                                Abb. 1: In der Konfigurationsdatei von TabPy muss die Zeit bis zum Timeout erhöht werden.

Bei unserem Anwendungsfall mit größeren Datenmengen und Tableau Prep wird
TabPy mit einem Timeout die Verbindung abbrechen. Die Standarddauer für die        Anschließend kann TabPy mit der festgelegten Konfiguration gestartet werden:
maximale Laufzeit liegt bei 30 Sekunden. Um dies zu ändern, erstellen Sie eine
Config Datei z.B. nach dieser Vorlage: https://github.com/tableau/TabPy/             tabpy --config=Pfad/zum/config/file.conf

Hier muss nun der Parameter „TABPY_EVALUATE_TIMEOUT“ entsprechend                  Nun sind Sie bereit, Python Skripte in Tableau Desktop und Tableau Prep aus-
erhöht werden. Die Datei wird anschließend gespeichert.                            zuführen.
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
3. H2O SCORING PIPELINE STARTEN
In diesem Abschnitt werden wir ein Modell auf Driverless AI von H2O AI erstellen und
auf unserer gewünschten Umgebung starten.

Wir zeigen das Vorgehen anhand des Titanic- Datensatzes:
https://www.kaggle.com/c/titanic

Der Datensatz enthält die Daten der Passagiere der Titanic, wie beispielsweise In-
formationen über Alter, Geschlecht und die Tatsache, ob sie die Tragödie überlebt
haben oder nicht. Das Ziel ist es, die Passagiere anhand ihrer Überlebenschance zu
kategorisieren.kategorisieren.

A. ERSTELLEN DES ML-MODELLS IN DRIVERLESS AI

Zuerst muss wie gewöhnlich der Datensatz in Driverless AI geladen werden, um an-
schließend ein Experiment zu starten. Für die genauere Vorgehensweise können Sie
sich an die Tutorials von H2O AI halten:
 https://h2oai.github.io/tutorials/

Zur besseren Übersicht kann das Modell vorerst einfach gehalten und nur wenige
Features verwendet werden. Wir haben uns in unserem Beispiel auf „Sex“, „Age“ und
„Fare“ beschränkt, um „Survived“ vorherzusagen.                                        Abb. 2: In der Konfigurationsdatei von TabPy muss die Zeit bis zum Timeout erhöht werden.
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
B. DEPLOYMENT DES MODELLS AUF DRIVERLESS AI
                                                                                    # Install the Requirements
Das eben erstellte Modell muss nun deployed werden, um als Service für andere
                                                                                    # Make all packages available on your instance
Anwendungen zur Verfügung zu stehen. Die einfachste Methode ist, die Deploy-        sudo apt-get -y update
Möglichkeiten von Driverless AI zu nutzen. Das fertig trainierte Modell kann über
                                                                                    # Install Python 3.6 and related packages
„Deploy (Local & Cloud)“ als lokaler Rest Server verfügbar gemacht werden.          sudo apt-get -y install python3.6 python-virtualenv python3.6-dev pyt-
                                                                                    hon3-pip python3-dev python3-virtualenv

                                                                                    # Install OpenBLAS for linear algebra calculations
                                                                                    sudo apt-get -y install libopenblas-dev

                                                                                    # Install Unzip for access to individual files in the scoring pipeline folder
                                                                                    sudo apt-get -y install unzip

                                                                                    # Install Java to include open source H2O-3 algorithms
                                                                                    sudo apt-get -y install openjdk-8-jdk

                                                                                    # Install tree to display environment directory structures
                                                                                    sudo apt-get -y install tree
                        Abb. 3: Model Deployment auf Driverless AI
                                                                                    # Install the thrift-compiler
                                                                                    sudo apt-get install automake bison flex g++ git libevent-dev \
                                                                                      libssl-dev libtool make pkg-config libboost-all-dev ant
                                                                                    wget https://github.com/apache/thrift/archive/0.10.0.tar.gz
                                                                                    tar -xvf 0.10.0.tar.gz
C.   DEPLOYMENT DES MODELLS AUF IHREM WUNSCHSYSTEM                                  cd thrift-0.10.0
                                                                                    ./bootstrap.sh
Wir zeigen hier auch, wie Sie die Python Scoring Pipeline auf dem System            ./configure
                                                                                    make
ihrer Wahl deployen können. Zuerst müssen alle benötigen Pakete installiert         sudo make install
werden:                                                                                                          [Quelle: https://h2oai.github.io/tutorials/scoring-pipeline-deployment-in-python-runtime/#2]
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
Anschließend erstellen Sie die Ordnerstruktur wie folgt. Ersetzen Sie dabei „titanic“                                                 Sobald Ihre Pipeline heruntergeladen ist, müssen Sie diese auf das vorbereitete
mit dem beliebigen Namen Ihres Projekts.                                                                                              System verschieben und entpacken. Führen sie diesen Befehl in einer Komman-
                                                                                                                                      dozeile durch, mit der Sie nicht mit dem Server verbunden sind.
   mkdir -p $HOME/model-deployment/common/license
                                                                                                                                         scp Pfad/zum/download/ordner/scorer.zip
   mkdir -p $HOME/model-deployment/common/titanic/testData/{test-batch-                                                                  nutzer@$Zielinstanz:$HOME/model-deployment/common/titanic/python-
   data,test-real-time-data}                                                                                                             scoring-pipeline/

   mkdir -p $HOME/model-deployment/common/titanic/{mojo-scoring-pipeline/
                                                                                                                                      Entpacken Sie nun auf Ihrer Zielinstanz die Scoring Pipeline
   {java-runtime/java/mojo2-java-runtime,cpp-runtime/{c/mojo2-c-runtime/
   {linux,macos-x,ibm-powerpc},r-wrapper/mojo2-r-runtime/{linux,macos-
   x,ibm-powerpc},python-wrapper/mojo2-py-runtime/{linux,macos-x,ibm-po-                                                                 cd $HOME/model-deployment/common/titanic/python-scoring-pipeline/
   werpc}}},python-scoring-pipeline}                                                                                                     unzip scorer.zip

   mkdir -p $HOME/model-deployment/apps                                                                                               Anschließend sind Sie bereit, ihre Pipeline zu starten. Wechseln Sie dafür in den
   tree model-deployment
                                       [Quelle: https://h2oai.github.io/tutorials/scoring-pipeline-deployment-in-python-runtime/#2]   Ordner der Scoring Pipeline und starten sie den http Server:

                                                                                                                                         cd $HOME/model-deployment/common/titanic/python-scoring-pipeline/sco-
                                                                                                                                         ring-pipeline
Ihre Umgebung ist nun bereit
                                                                                                                                         bash run_http_client.sh
für das Machine Learning Modell, das
Sie im vorherigen Schritt erstellt haben.                                                                                             Ihre Instanz ist nun bereit, mit Tableau Desktop verbunden zu werden!
Laden Sie also die Python Scoring
Pipeline herunter.

Abb. 4: Laden Sie die Python Scoring Pipeline von
              Driverless AI herunter
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
4. INTEGRATION VON H2O IN TABLEAU DESKTOP
An diesem Punkt sollte Ihr TabPy-Server und ihre Scoring Pipeline laufen und bereit   Im sich öffnenden Fenster können Sie den Verbindungstyp auswählen. Hier wählen
für die Anbindung an Tableau Desktop sein.                                            Sie TabPy. Nun geben Sie die Verbindungsdaten Ihres TabPy-Servers ein und
                                                                                      speichern Sie die Verbindung.

A. ANBINDUNG VON TABPY

Wir wenden uns nun Tableau Desktop zu. Navigieren Sie hier zu:
Hilfe > Einstellungen und Leistung > Verbindung für Analytics-Einstellung
verwalten…

                                                                                                          Abb. 5: Verbinden Sie sich zu Ihrem TabPy-Server

                                                                                      Die Verbindung zu TabPy ist nun konfiguriert und Tableau Desktop damit in der
                      Abb. 5: Verbinden Sie sich zu Ihrem TabPy-Server                Lage, Ihren Python Code auszuführen.
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
B. ANBINDUNG ZU SCORING PIPELINE UND ERSTELLEN VON BERECHNETEM
FELD MIT PYTHON

Laden Sie nun die Daten, die Sie visualisieren und vorhersagen wollen in Tableau.          Die Argumente, die wir an SCRIPT_REAL übergeben, sind neben dem Python
Jetzt sind Sie soweit, Ihr eigenes berechnetes Feld mit Python Integration zu erstellen.   Code MEDIAN([Age]), MEDIAN([Fare]), MEDIAN([sex number]).
Dieses Vorgehen eignet sich, um einfache Visualisierungen auf Basis von Aggregaten         Die Aggregate können im Python Code als „_arg1“ bis „_argN“ referenziert werden.
zu erstellen.

Die Funktionen, die Ihnen zur Verfügung stehen sind SCRIPT_STR, SCRIPT_REAL,
SCRIPT_BOOL und SCRIPT_INT – je nachdem welches Dateiformat Ihr Feld hat. In
unserem Fall erwarten wir eine Wahrscheinlichkeit in Form einer reellen Zahl, benut-
zen Sie also SCRIPT_REAL. Diese Funktion erwartet ein R oder Python Skript und die
verwendeten Aggregate als Argumente. Wir arbeiten hier mit Python.

                                                                                                    Abb. 8: Unser berechnetes Feld, das die Überlebenswahrscheinlichkeit vorhersagt

                                                                                           Der Python Code sendet einen Post-Request an die Instanz, auf der unsere
                                                                                           H2O-Scoring-Pipeline läuft. Die übertragenen Daten enthalten als Parameter
                Abb. 7: Die Variablen, die Sie verwenden, müssen aggregierbar sein.
                                                                                           unsere gewählten Features. Die Antwort, die wir erhalten ist im JSON-Format.
                                                                                           Die numerische Antwort, die Tableau erwartet, muss aus diesem JSON- String
Wir haben in unserem Beispiel ein Textfeld „Sex“ verwendet. Um dieses zu aggregie-         extrahiert werden. Den Weg, den die gesendeten Requests gehen, können Sie
ren, ist es nötig eine Hilfskennzahl zu erstellen. Diese Kennzahl benutzen wir nun bei     in der TabPy-Kommandozeile und auf Ihrer Instanz, auf der die Scoring-Pipeline
der Integration von Python.                                                                läuft, nachvollziehen.
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
Wenn Sie nun das berechnete Feld in Ihr Arbeitsblatt einfügen beachten Sie zwei
Dinge: Die Scoring Pipeline kann NULL-Werte nicht verarbeiten. Sie sollten die-
se durch Tableau-Filter oder in Ihrer Python-Logik entfernen. Außerdem muss in
vielen Fällen, das Feld per Zelle berechnet werden, um die gewünschten Ergeb-
nisse zu erhalten. Verwenden Sie nun das berechnete Feld wie gewohnt ihn Ihren
Arbeitsblättern und Dashboards.

                         Abb. 9: Berechnen Sie das Feld per Zelle

Hierbei darf man nicht vergessen, dass Sie hier mit aggregierten Werten arbeiten.
Das Ergebnis im Beispielbild zeigt die Wahrscheinlichkeiten einer Frau bzw. eines
Mannes mit durchschnittlichem Alter und durchschnittlichem Ticketpreis. Wollen
Sie allerdings pro Person die Wahrscheinlichkeit berechnen und den Durchschnitt
davon anzeigen, folgen Sie dem nächsten Abschnitt.                                  Abb. 10: Ein Worksheet mit den Daten, die durch die Scoring Pipeline erzeugt wurden
TABLEAU DASHBOARDS MIT H2O AUF DIE NÄCHSTE INFORMATIONSSTUFE HEBEN - H2O VORHERSAGEN MIT TABLEAU VISUALISIEREN: Ancud IT-Beratung GmbH
5. PYTHON SKRIPTS IN TABLEAU PREP-SCHEMAS ZUR INTEGRATION VON H2O MODELLEN
Um Vorhersagen für einzelne Zeilen des Datensatzes anzuwenden, ist es meist            Um die H2O-Scoring-Pipeline in Tableau Prep zu verwenden, führen Sie die
nicht ausreichend, Tableau Desktop zu verwenden. Die Daten müssen mit Tableau          Schritte 2 und 3 wie gehabt aus. Sie benötigen TabPy und die Scoring-Pipeline.
Prep präprozessiert werden. Tableau Prep wiederum bietet die Möglichkeit, kom-
plexere Szenarien abzubilden und benutzerdefinierte Python-Skripte auszuführen.        Um TabPy in Tableau Prep zu integrieren, legen Sie ein neues Schema an. Ihre
                                                                                       TabPy-Konfiguration können Sie unter Hilfe > Einstellungen und Leistung >
Dies bietet den Vorteil einer höheren Geschwindigkeit. Die gewünschten Daten wer-      Verwalten der Verbindung mit Analytics-Erweiterungen ändern.
den einmal generiert – das Modell muss also nur einmal ausgeführt werden. An-
schließend wird der Datensatz beispielsweise als .hyper-Datei gespeichert und kann
wie gewohnt verwendet werden. TabPy muss also auch nicht aktiv sein, wenn das
Dashboard aufgerufen wird. Dies ist lediglich nötig beim Erstellen der .hyper-Datei.

Darüber hinaus kann so die Vorhersage in komplexere Schemata integriert werden
und weiter bearbeitet werden.

A. VORBEREITUNGEN

                                                                                                            Abb. 12: Stellen Sie die Verbindung zu TabPy ein

                                                                                       Stellen Sie nun die Verbindung zu Ihren Daten her. Anschließend Filtern Sie die
                  Abb. 11: Das Ziel ist, ein Schema dieser Struktur zu erstellen       Daten, sodass keine NULL-Werte mehr bearbeitet werden.
B. ERSTELLEN SIE IHR PYTHON SKRIPT

Im nächsten Schritt kommen wir nun zur Integration von H2O AI durch ein                                                     Speichern Sie dieses Skript und fügen es als nächsten Verarbeitungsschritt in Ihr
Python-Skript. Dieses Skript ist wie folgt aufgebaut:                                                                       Tableau Schema ein.

	Eine Funktion “get_output_schema()”: hier wird angegeben, welche Felder mit
 welchem Datentyp und welchem Namen zurückgegeben werden

                                               Quelle: https://help.tableau.com/current/prep/en-us/prep_scripts_TabPy.htm

         Abb. 13: Diese Datentypen stehen zur Definition der Datentypen zur Verfügung

	Eine Funktion mit einem beliebigen Namen. Hierbei ist folgendes zu beachten:

  • Input ist ein Dataframe, der die von Tableau Prep übergebenen Daten enthält
  •D  ie Funktion enthält die Logik, also die Verbindung zur H2O-Scoring-Pipeline
  •E  s wird über alle Zeilen des Datensatzes iteriert, um für jede Zeile eine
    Vorhersage zu erhalten
  •G  ibt einen Dataframe mit den Ergebnissen zurück. Hier sollte mindestens
    die Vorhersage und eine ID als Rückgabe gewählt werden. So kann im Nach-
                                                                                                                                                Abb. 14: Das Skript, um Titanic-Daten zu verarbeiten
    gang das Ergebnis mit anderen Daten gejoined werden.
C. FÜGEN SIE IHR SKRIPT ZUM SCHEMA HINZU

Im nächsten Schritt kommen wir nun zur Integration von H2O AI durch ein                Diese generierte Datei kann nun in Tableau Desktop eingebunden werden und
Python-Skript. Dieses Skript ist wie folgt aufgebaut:                                  Ihre Worksheets um Machine Learning Vorhersagen erweitern.

Fügen Sie einen neuen Verarbeitungsschritt „Skript“ in Tableau Prep hinzu.
Stellen Sie den Verbindungstyp auf „Tableau Python (TabPy)-Server“, fügen Sie
durch klick auf „Durchsuchen“ Ihr Skript ein und geben Sie unter „Funktionsna-
me“ Ihren frei gewählten Namen der Python-Funktion ein.

                                                                                               Abb. 16: Ein Worksheet mit den Daten, die durch Tableau Prep vorbereitet wurden

             Abb. 15: Fügen Sie Ihr Skript hinzu und passen sie die Eigenschaften an
                                                                                       6. FAZIT
Nach der Ausführung des Skripts erhalten Sie die definierten Spalten zurück. In        Sowohl Tableau als auch H2O AI bieten vielfältige Einsatzgebiete in unzähligen
unserem Fall lediglich zwei. Darum ist es sinnvoll, die Ergebnisse des Skripts mit     Anwendungsbereichen. Dieses Tutorial kann nur einen ersten Einblick in die
dem ursprünglichen Datensatz zu joinen. Anschließend wird der präprozessier-           Möglichkeiten bieten. Nutzen Sie Tableau Server? Auch hier ist eine Integration
te Datensatz in eine hyper- oder csv-Datei gespeichert.                                von H2O AI möglich. Gerne unterstützen wir Sie bei Ihren Problemstellungen!
JETZT KONTAKT AUFNEHMEN

Ancud IT-Beratung GmbH    0911 25 25 680
  Glockenhofstraße 47     info@ancud.de
    90478 Nürnberg        www.ancud.de

ANCUD IT AUF SOCIAL MEDIA ENTDECKEN

       Facebook             Instagram

       LinkedIn               Xing
Sie können auch lesen