Wie Ihr Predictive Analytics als native Hana-Funktion nutzen könnt

In diesem Artikel befassen wir uns eingehend mit den nativen Predictive-Analytics-Möglichkeiten in HANA und erklären dabei Schritt für Schritt, wie ihr die Predictive Analytics Library (PAL), ein Bestandteil der Application Function Library (AFL), einsetzen könnt, um ein mehrfaches lineares Regressionsmodell zu erstellen und anhand dieses Models Prognosen abzuleiten.

Du möchtest mehr zum Thema Predictive Analytics erfahren? Dann kann ich dir zwei unserer vorausgegangenen Artikel empfehlen:

  1. Die Welt der Predictive Analytics
  2. Eine Anleitung zum eigenen Vorhersagemodell

PAL – eine Einführung

Wir haben in der Vergangenheit bereits über den Einsatz von SAP Business Objects Predictive Analytics zur prädiktiven Analyse gesprochen. Eine weitere Möglichkeit zum Erstellen und Trainieren von Modellen und zur Ableitung von Prognosen von diesen Modellen eröffnet sich zudem durch die Nutzung der Predictive Analytics Library. Diese Methode ist weitaus komplexer und erfordert vom Anwender zudem technisches Fachwissen.

Zwar ist die von SAP angebotene Lösung benutzerfreundlicher, doch eröffnet die Implementierung von HANA-PAL-Lösungen durch die Erstellung eines nativen HANA-Prozesses weitaus größere Möglichkeiten zur Aufnahme der Daten in andere Anwendungen.

Der Einsatz des Predictive-Analytics-Tools ist vor allem aufgrund der Lizenzgebühren mit hohen Kosten verbunden – dagegen erfordert HANA PAL lediglich die entsprechende Expertise im Umgang mit den PAL-Funktionen.

WIE FUNKTIONIERT DIE PAL?

HANA bietet ein breites Spektrum an Funktionen, die sich für unterschiedliche Szenarien implementieren lassen (Data Clustering, Klassifizierung, Regression, Zeitreihenprognosen usw.).

In diesem Artikel konzentrieren wir uns auf eine PAL-Funktion: die multiple lineare Regression.

Dabei verwenden wir mit dem Rossmann-Datensatz erneut die Daten, die wir bereits im zweiten Artikel unserer Predictive-Analytics-Reihe herangezogen haben (Eine Anleitung zum eigenen Vorhersagemodell).

Der Datensatz wird von der Rossmann-Drogeriekette auf der Kaggle-Website bereitgestellt. Hier können Einzelpersonen und Unternehmen echte Datensätze hochladen, um Wettbewerbe zu veranstalten oder Datenforscher bei der Weiterentwicklung ihrer Fähigkeiten zu unterstützen.

Für eine detaillierte Ansicht der Codes müsst ihr eine multilineare Regression erstellen. Wir stellen euch zwei Dokumente zur Verfügung, die euch dabei unterstützen:

VORAUSSETZUNGEN UND DATENVERARBEITUNG

Für die nächsten Schritte gehen wir davon aus, dass du SAP HANA STUDIO bereits auf deinem Computer installiert hast. Darüber hinaus benötigst du eine SAP-HANA-Serververbindung, um auf die HANA-Datenbank und -Engine zugreifen zu können. Auch solltest du bereits die aktuellste Version der HANA-Datenbank (2.0) verwenden. Beide Algorithmen in unserem Beispiel werden sowohl von HANA 1.0 SPS 09 als auch von HANA 2.0 SPS 01 unterstützt.

Für unser Szenario haben wir die Daten aus der train.csv und store.csv als Berechnungssicht in unsere HANA-Datenbank importiert.

In der Datei train.csv finden wir neben den Daten zu den Verkaufszahlen und den Verkaufszeitpunkten auch Informationen zu Angebotsaktionen, Kundenzahlen, Wochentagen usw.

Die Datei store.csv enthält Stammdaten zu den einzelnen Filialen, so zum Beispiel die Entfernung zum nächsten Mitbewerber, Art der Filiale und Sortiment der Filiale.

Abbildung 1.1 zeigt die beiden Datentabellen:

Abb. 1.1

In der von uns angelegten HANA-Berechnungssicht bringen wir beide Dateien zusammen, um einen vollständigen Datensatz zu erhalten und sicherzustellen, dass unsere Algorithmen ein genaues Modell für eine präzise Prognose ableiten können (wie in Abb. 1.2 dargestellt).

Abb. 1.2

IMPLEMENTIERUNG DES PAL-ALGORITHMUS

Für unser Szenario implementieren wir die Prognose mithilfe der multiplen linearen Regression.

1. Worum handelt es sich bei der multiplen linearen Regression (MLR)?

Lineare Regression ist ein Verfahren zur Modellierung des linearen Zusammenhangs zwischen einer Variable , üblicherweise als abhängige Variable bezeichnet, und einer oder mehreren Variablen, üblicherweise als unabhängige Variablen bezeichnet, wiederum bekannt als Prädiktionsvektor . In der linearen Regression werden Daten anhand von linearen Funktionen modelliert und unbekannte Modellparameter werden anhand dieser Daten geschätzt. Diese Modelle werden als lineare Modelle bezeichnet.

2. IN 7 SCHRITTEN ZUM EIGENEN MLR-MODELL

Schritt 1: Parameter definieren

Zur Erstellung eines multiplen linearen Modells muss der Algorithmus über zwei Eingabetabellen sowie über vier Ausgabetabellen verfügen und wir müssen die Definition dieser Tabellen anlegen.

Eingabetabellen:

  1. Data – hier enthalten sind die Spalten, die für das Trainieren des Modells verwendet werden. Die Daten müssen eine „Primary Key“-Spalte („ID“) umfassen, die als erste Spalte definiert werden muss. Die zweite Spalte muss die Ziel-/abhängige Spalte sein (die „Y-Variable, die wir vorhersagen). Die übrigen Spalten werden mit den unabhängigen Variablen befüllt (X1, X2, …), die den Algorithmus bei der Erstellung eines exakten Modells unterstützen.
  2. Significance – hier enthalten sind die Koeffizienten des Modells und ihre Werte (je höher der Wert, desto größer sind die Auswirkungen auf das Modell)
  3. Fitted – Die angepassten Werte („Sales” in unserem Fall) des Ziels.
  4. Results – die Ergebnisse des Models (Modellgenauigkeit und Vertrauen).
  5. Exported model – das Modell, das für zukünftige Prognosen verwendet wird.
  6. Control – der Parameter, der festlegt, wie der Algorithmus arbeiten soll (hier können wir die so genannten „Elastic Net Penalties“ aktivieren und entsprechend anpassen, um die Thread-Nummern, das zu lösende Least-Square-Problem usw. festzulegen.)

Schritt 2: Anlegen der Parametertabelle

Nachdem wir die Definitionen für das Modell angelegt haben, müssen wir nun die Tabelle anlegen, die alle Parameter enthält. Wir legen darüber hinaus fest, ob es sich bei den Tabellen um Eingabe- oder Ausgabeparameter handelt (bei den Tabellen Data und Control handelt es sich um Eingabeparameter und bei allen anderen um Ausgabeparameter).

Schritt 3: Anlegen des Wrappers

Der Wrapper erstellt ein Verfahren, das die angegebene Funktion und die zuvor angelegte Parametertabelle verwendet. Dieses Verfahren werden wir in der Folge zur Erstellung des Regressionsmodells anhand unserer Trainingsdaten verwenden.

Schritt 4: Befüllen der „Data“-Tabelle

Zunächst legen wir eine neue Tabelle an, die die gleichen Spalten und Spaltentypen umfasst wie die für die Parametertabelle erstellte Definition.

Schritt 5: Befüllen der „Control“-Tabelle

In der Control-Tabelle legt der Anwender fest, wie der Algorithmus arbeitet. Dies funktioniert ganz ähnlich wie das Erstellen von Einstellungen für dein Programm. Die folgenden „Control“-Einstellungen können festgelegt werden:

a. THREAD_NUMBER -> gibt die Nummer der Threads an (nur wenn Algorithmus 1,5 oder 6 verwendet wird)

b. ALG -> gibt die Algorithmen zur Lösung des Least-Square-Problems an:

  • QR-Zerlegung (numerisch stabil, aber schlägt fehl, wenn A rangdefizient ist)
  • SVD (numerisch stabil und Rangdefizienz stellt kein Problem dar, aber sehr rechenintensiv)
  • Zyklisches Koordinatenabstiegsverfahren zur Lösung durch Elastic Net regularisierter multipler linearer Regression
  • Cholesky-Zerlegung (schnell aber numerisch instabil)
  • Alternating Direction Method of Multipliers zur Lösung durch Elastic Net regularisierter multipler linearer Regression. Dieses Verfahren ist in vielen Fällen schneller als das zyklische Koordinatenabstiegsverfahren und wird empfohlen.

c. VARIABLE_SELECTION -> „0“ um alle Variablen zu berücksichtigen, „1“ Vorwärtsselektion, „2“ Rückwärtsselektion

d. ALPHA_TO_ENTER -> p-Wert für Vorwärtsselektion

e. ALPHA_TO_REMOVE -> p-Wert für Rückwärtsselektion

f. ENET_LAMBDA -> Penalisierte Gewichtung

g. ENET_ALPHA -> Elastic-Net-Mischungsparameter

In unserem Beispiel verwenden wir ALG 6 mit aktivierter Elastic-Net-Penalisierung (eine Methode zur Optimierung des Regressionsmodells) und die Thread-Nummer beträgt 5.

Schritt 6: Ausgabetabellen aufbauen

Jetzt müssen wir nur noch die Ausgabetabellen anhand dieser Definitionen erstellen.

Schritt 7: Das Modell erstellen

Abschließend müssen wir nur noch das Verfahren aufrufen, das wir im Wrapper angelegt haben, die Ergebnisse anzeigen und eine Tabelle anlegen, in der wir die angepassten Werte mit den tatsächlichen Werten vergleichen können.

Ergebnisse

Das erste angezeigte Ergebnis ist die Koeffiziententabelle, aus der wir die Auswirkungen jedes Koeffizienten auf das Model entnehmen können, wobei 0 bedeutet, dass es nahezu keine Auswirkungen auf das erstellte Modell gibt.

Abb. 1.3

Die nächste Ausgabetabelle zeigt uns die angepassten Werte der Trainingsmodelldaten.

Abb. 1.4

Mit der letzten Tabelle erhalten wir die Statistiken des erstellten Modells.

  • R2 – ist die Aussagekraft des Modells, in unserem Fall liegt die Präzision des Modells bei 89,996 %.
  • F – Der F-Wert ist das Verhältnis der mittleren Regressions-Quadratsumme geteilt durch die mittlere Fehlerquadratsumme.
  • AIC – Das Akaike Information Criterion (AIC) ermöglicht Aussagen über die relative Güte statistischer Modelle für einen vorgebenen Datensatz. Anhand einer Sammlung von Modellen für die Daten können so Aussagen über die Güte jedes Modells relativ zu den anderen Modellen getroffen werden. Das AIC stellt also ein Mittel zur Modellauswahl bereit.
  • BIC – Das Bayesian Information Criterion (BIC) oder Schwarz Information Criterion (auch SBC, SBIC) genannt dient als Kriterium für die Modellauswahl aus einer begrenzten Anzahl an Modellen, wobei das Modell mit dem kleinsten BIC bevorzugt wird. Es basiert zum Teil auf der Wahrscheinlichkeitsfunktion und ist eng verwandt mit dem AIC.
  • MQF – Der mittlere quadratische Fehler (MQF) oder mittlere quadratische Abweichung (MQA) eines Schätzers (eines Verfahrens zur Schätzung einer unbeobachteten Menge) misst den Mittelwert der Quadrate der Fehler oder Abweichungen — also den Unterschied zwischen dem Schätzer und dem was geschätzt wird.
  • RMSE – Wurzel aus dem mittleren quadratischen Fehler (Root Mean Square Error)
  • MAE – Mittlerer absoluter Fehler (Mean Absolute Error)
  • MAPE – Der mittlere absolute prozentuale Fehler (Mean Absolute Percentage Error), auch mittlere absolute prozentuale Abweichung (Mean Absolute Percentage Deviation / MAPD) genannt, dient der Messung der Vorhersagegenauigkeit eines Prognoseverfahrens in der Statistik, so zum Beispiel bei der Trendschätzung.

Abb. 1.5

Der Vergleich zwischen den angepassten und den tatsächlichen Werten kann durch ein Diagramm benutzerfreundlicher gestaltet werden. In diesem kann der tatsächliche Wert mit dem vorhergesagten/angepassten Wert wie unten dargestellt über einen festgelegten Zeitraum verglichen werden.

Abb. 1.6

Abb. 1.7

3. ANLEITUNG ZUR ERSTELLUNG VON PROGNOSEN ANHAND DER ERGEBNISSE DES MLR-MODELLS

(1) Parameterdefinition

Ähnlich wie bei der Erstellung unseres Modells müssen wir auch hier eine Parameterdefinition anlegen, jedoch mit dem Unterschied, dass die Datentabelle „type“ die Zielvariable nicht enthalten darf.

(2) Wrapper Prognoseverfahren

Unser erstelltes Verfahren wird mit den Spezifikationen und Strukturen der Parametertabelle gespeist und verwendet die ‘FORECASTWITHLR’-Funktion.

(3) Erstellen der Eingabe- und Ausgabetabelle und Datengenerierung sowie Regressionsspezifikation

Ähnlich wie bei der Modellerstellung legen wir fest, wie die lineare Regressionsprognosefunktion mit den Eingabedaten umgeht. Die Eingabedaten dürfen die Zielspalte nicht enthalten.

(4) Koeffiziententabelle

Die Daten der Koeffiziententabelle müssen aus der Koeffiziententabelle aus den Modellergebnissen übertragen werden.

(5) Aufruf des Prognoseverfahrens

Jetzt müssen wir nur noch das zuvor angelegte Verfahren aufrufen.

(6) Ergebnisanzeige

Zeige die vom Prognosealgorithmus erstellen Vorhersagen an.

 

Quellen:

https://help.sap.com/doc/86fb8d26952748debc8d08db756e6c1f/2.0.00/en-us/sap_hana_predictive_analysis_library_pal_en.pdf

https://help.sap.com/viewer/2cfbc5cf2bc14f028cfbe2a2bba60a50/2.0.00/en-US/eedc9094daf04419bc25f6ed097ac03b.html

Autor dieses Beitrags
Gellert Peter-Siskovits Associate
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de