Umgang mit Zeitreihen-Fensterfunktionen in Data-Science-Interviews

[ad_1]

Data Scientists verarbeiten täglich Zeitreihendaten, und die Fähigkeit, diese Daten zu manipulieren und zu analysieren, ist ein erforderlicher Teil der Arbeit. SQL-Fensterfunktionen ermöglichen Ihnen genau dies und sind eine häufige Frage in Interviews mit Data Science. Lassen Sie uns also darüber sprechen, was Zeitreihendaten sind, wann sie verwendet werden und wie Funktionen zur Verwaltung von Zeitreihendaten implementiert werden.

Was sind Zeitreihendaten?

Zeitreihendaten sind Variablen in Ihren Daten, die eine Zeitkomponente haben. Das bedeutet, dass jeder Wert in diesem Attribut entweder einen Datums- oder einen Zeitwert hat, manchmal haben sie beides. Hier sind einige Beispiele für Zeitreihendaten:

• Der tägliche Aktienkurs für Unternehmen, da jeder Aktienkurs einem bestimmten Tag zugeordnet ist

• Der tägliche durchschnittliche Aktienindexwert der letzten Jahre, da jeder Wert einem bestimmten Tag zugeordnet ist

• Einmalige Besuche einer Website über einen Monat

• Plattformregistrierungen jeden Tag

• Monatliche Verkäufe und Einnahmen

• Tägliche Anmeldungen für eine App

LAG- und LEAD-Fensterfunktionen

Beim Umgang mit Zeitreihendaten besteht eine gängige Berechnung darin, Wachstum oder Durchschnittswerte über die Zeit zu berechnen. Dies bedeutet, dass Sie entweder das zukünftige Datum oder das vorherige Datum und die zugehörigen Werte abrufen müssen.

Zwei WINDOW-Funktionen, mit denen Sie dies erreichen können, sind LAG und LEAD, die äußerst nützlich für den Umgang mit zeitbezogenen Daten sind. Der Hauptunterschied zwischen LAG und LEAD besteht darin, dass LAG Daten aus vorherigen Zeilen abruft, während LEAD das Gegenteil ist und Daten aus folgenden Zeilen abruft.

Wir können eine der beiden Funktionen verwenden, um beispielsweise das Wachstum von Monat zu Monat zu vergleichen. Als Data-Analytics-Experte arbeiten Sie höchstwahrscheinlich an zeitbezogenen Daten, und wenn Sie LAG oder LEAD effizient einsetzen können, sind Sie ein sehr produktiver Data Scientist.

Eine Data-Science-Interviewfrage, die eine Fensterfunktion erfordert

Lassen Sie uns eine SQL-Interviewfrage für fortgeschrittene Data Science durchgehen, die sich mit dieser Fensterfunktion befasst. Sie werden Fensterfunktionen häufig als Teil von Interviewfragen sehen, aber Sie werden sie auch häufig in Ihrer täglichen Arbeit sehen, daher ist es wichtig zu wissen, wie man sie verwendet.

Lassen Sie uns eine Frage von Airbnb mit dem Titel „Wachstum von Airbnb“ durchgehen. Wer interaktiv mitverfolgen möchte, kann dies hier tun.

Die Frage ist, das Wachstum von Airbnb jedes Jahr zu schätzen, indem die Anzahl der registrierten Gastgeber als Wachstumsmetrik verwendet wird. Die Wachstumsrate errechnet sich aus ((Anzahl der im laufenden Jahr registrierten Hosts – Anzahl der im Vorjahr registrierten Hosts) / Anzahl der im Vorjahr registrierten Hosts) * 100.

Geben Sie das Jahr, die Anzahl der Hosts im laufenden Jahr, die Anzahl der Hosts im Vorjahr und die Wachstumsrate aus. Runden Sie die Wachstumsrate auf den nächsten Prozentwert und ordnen Sie das Ergebnis in aufsteigender Reihenfolge basierend auf dem Jahr.

Vorgehensweise Schritt 1: Host für das laufende Jahr zählen

Der erste Schritt besteht darin, Hosts nach Jahr zu zählen, also müssen wir das Jahr aus den Datumswerten extrahieren.

SELECT-Auszug (Jahr

FROM host_since::date) AS Jahr,

count(id) aktueller_Jahr_Host

VON airbnb_search_details

WO host_since NICHT NULL IST

GROUP BY-Extrakt (Jahr

FROM host_since::date)

ORDER NACH Jahr

Vorgehensweise Schritt 2: Host für das Vorjahr zählen.

Hier verwenden Sie die LAG-Fensterfunktion. Hier erstellen Sie eine Ansicht, in der wir das Jahr, die Anzahl der Hosts im aktuellen Jahr und dann die Anzahl der Hosts aus dem Vorjahr haben. Verwenden Sie eine Verzögerungsfunktion für die Zählung des Vorjahres, nehmen Sie den Wert des letzten Jahres und setzen Sie ihn in dieselbe Zeile wie die Zählung dieses Jahres. Auf diese Weise haben Sie drei Spalten in Ihrer Ansicht – Jahr, Anzahl der Hosts des aktuellen Jahres und Anzahl der Hosts des letzten Jahres. Mit der LAG-Funktion können Sie ganz einfach die Hostanzahl des letzten Jahres in Ihrer Zeile abrufen. Dies macht es Ihnen leicht, jede Metrik wie eine Wachstumsrate zu implementieren, da Sie alle Werte, die Sie benötigen, in einer Zeile haben, damit SQL eine Metrik einfach berechnen kann. Hier ist der Code dafür:

Jahr auswählen,

aktuelles_jahr_host,

LAG(current_year_host, 1) OVER (ORDER BY year) AS prev_year_host

VON

(AUSZUG AUSWÄHLEN (Jahr

FROM host_since::date) AS Jahr,

count(id) aktueller_Jahr_Host

VON airbnb_search_details

WO host_since NICHT NULL IST

GROUP BY-Extrakt (Jahr

FROM host_since::date)

ORDER NACH Jahr) t1) t2

Ansatz 3: Implementieren Sie die Wachstumsmetrik

Wie bereits erwähnt, ist es viel einfacher, eine Metrik wie die untenstehende zu implementieren, wenn sich alle Werte in einer Zeile befinden. Aus diesem Grund führen Sie die LAG-Funktion aus. Implementieren Sie die Berechnungsrunde der Wachstumsrate (((aktuelles_Jahr_Host – vorheriges_Jahr_Host)/(cast(vorheriges_Jahr_Host AS numerisch)))*100) geschätztes_Wachstum

Jahr auswählen,

aktuelles_jahr_host,

prev_year_host,

round(((aktuelles_Jahr_Host – vorheriges_Jahr_Host)/(cast(vorheriges_Jahr_Host AS numerisch)))*100) geschätztes_Wachstum

VON

(Jahr auswählen,

aktuelles_jahr_host,

LAG(current_year_host, 1) OVER (ORDER BY year) AS prev_year_host

VON

(AUSZUG AUSWÄHLEN (Jahr

FROM host_since::date) AS Jahr,

count(id) aktueller_Jahr_Host

VON airbnb_search_details

WO host_since NICHT NULL IST

GROUP BY-Extrakt (Jahr

FROM host_since::date)

ORDER NACH Jahr) t1) t2

[ad_2]

Quelle von Rakib Raihan

Stefan

Hi, hier sollten ja eigentlich ein paar Dinge über mich stehen, wie zum Beispiel: dann und dann hier und dort geboren, da herumgekommen und dort nicht weg gekommen, nachdem er dieses und jenes gemacht hat, aber jetzt eben doch was anderes macht, entgegen seiner damaligen Vorstellungen und Wünsche. Viel Spaß beim Lesen.

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert