Die KNIME Analytics Platform (siehe www.knime.com) bietet eine große Vielzahl an starken Funktionalitäten, um in kurzer Zeit selbst komplexere Machine Learning Workflows zu erstellen. Eine typische Herausforderung bei der Erstellung von Prognosemodellen ist die Berechnung von Lag-Variablen für diverse Einflussfaktoren. In einem praktischen Beispiel würde man für die Prognose des Kurses der Apple-Aktie die historischen Werte der Aktie selbst sowie z.B. historische Werte für die Kurse von Alphabet, Facebook, Twitter und Microsoft verwenden. Für eine einzelne Spalte ist der „Lag Column“ Node das Mittel der Wahl, für mehrere Spalten gibt es jedoch keine einfache Möglichkeit, vergangene Werte verschiedener Perioden in eine gemeinsame Zeile zu bringen, um diese für das Lernen eines Prognosemodells zu verwenden.
Diese Möglichkeit lässt sich jedoch auf zwei Weisen durch die Erstellung eines entsprechenden „Metanode“ bzw. Sub-Workflows hinzufügen.
Möglichkeit 1: Einbettung des „Lag Column“ Node in eine Schleife – beste Lösung bei geringer Spaltenanzahl und vielen Lags
Mit Hilfe des „Column List Loop“ Node lässt sich der „Lag Column“ Node in einer Schleife für beliebig viele ausgewählte Spalten anwenden. Mit Hilfe einer „Flow Variable“ wird dem „Lag Column“ Node bei jeder Iteration jeweils der Name der nächsten zu verarbeitenden Spalte mitgeteilt. Am Ende fasst der „Loop End (Column Append)“ Node die Ergebnisse wieder spaltenweise zusammen und man erhält den gewünschten Datensatz mit beliebig vielen Lag-Variablen.

Möglichkeit 2: Nutzung von „Collection Columns“ – beste Lösung bei großer Spaltenanzahl und wenigen Lags
Auf den ersten Blick zwar komplexer ist die zweite Lösung jedoch sehr hilfreich wenn eine geringe Anzahl an Lags für viele Spalten berechnet werden soll. Durch die temporäre Zusammenfassung der ausgewählten Spalten in eine „Collection Column“ muss die „Column List“ Schleife nur die Anzahl der Lags durchlaufen und nicht die große Anzahl der Spalten. Am Ende führt diese Lösung zu genau demselben Datensatz wie die erste Lösung. Einziger Nachteil: Intervalle und Anzahl der Lags sind für alle ausgewählten Spalten identisch und können nur im Nachhinein variabel gestaltet werden – dies ist jedoch bei großer Spaltenanzahl mit deutlich weniger Rechenaufwand verbunden.
Wenn ihr den entsprechenden KNIME Workflow nutzen wollt, schreibt uns eine kurze Mail (moin@clarifydata.de) und wir stellen euch diesen gern zur Verfügung! Schaut alternativ in meinen Beitrag im KNIME-Forum: https://www.knime.com/forum/knime-general/multiple-column-lag.
Comments