Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Umwandeln von Datentypen

Wenn Sie ein Modell für maschinelles Lernen trainieren, ist es wichtig, dass der Datensatz alle Datentypen repräsentiert. Wenn eine Variable ungenau dargestellt ist, könnte dies zu einem Modell mit geringer Genauigkeit führen, bzw. zu einem Modell, das gut aussieht, aber keine guten Vorhersagen trifft, wenn es auf reale Daten angewendet wird. Sie müssen unterscheiden können, was jedes Feature misst und wie Sie diesem Feature eine passende Darstellung zuweisen.

Im Allgemeinen betrachtet maschinelles Lernen alle „float“- oder „double“-Datentypen als numerischen Wert und alle „string“ als kategorial. Diese Interpretation ist allerdings nicht immer richtig, wie in den folgenden Beispielen gezeigt wird.

Die Beispiele basieren auf einem Datensatz, der zum Beantworten der folgenden Frage aggregiert wurde: „Wird ein Käufer innerhalb von 30 Tagen nach dem ersten Kaufdatum ein Produkt erneut kaufen?“ Der Datensatz enthält Spalten mit verschiedenen Datentypen, darunter „string“, „double“, „integer“, „boolean“ und „date“.

Spalten und Datentypen

Tabelle mit Spaltennamen und Datentypen.

Zeichenfolgen

Die Tabelle unten zeigt zwei der Spalten in unserem Datensatz, die beide den Datentyp „string“ haben. Die Spalte „MarketingSource“ weist keinen messbaren Unterschied zwischen den Werten auf, beispielsweise zwischen „Facebook“ und „Customer Referral“. Es ist keine numerische oder skalare Beziehung vorhanden, und somit sollte die Spalte als kategorial betrachtet werden.

Andererseits reichen die Werte der Spalte „SourceCostPerAcquisition“ von „Low“ bis „High“ und weisen einen stärker messbaren Unterschied untereinander auf. Er ist nicht so genau wie etwa die durchschnittlichen Kosten pro Anschaffungsquelle in Dollar, aber es herrscht eine klare Größenordnung unter den Werten. In diesem Fall wäre zu überlegen, ob „SourceCostPerAcquisition“ als kategorial oder numerisch betrachtet werden sollte.

Beispieldaten für die Spalten „PersonID“, „MarketingSource“ und „SourceCostPerAquisition“

Tabelle mit Beispieldaten.

In diesen Situationen ist es eine empfohlene Praxis, zwei separate Konfigurationen zu erstellen, wobei jede eine unterschiedliche mögliche Unterteilung der Features aufweist. Diese Experimente werden dann separat durchgeführt. Die erste Konfiguration ist für die ursprüngliche Zeichenkettendarstellung. In der zweiten Konfiguration geben Sie den einzelnen Werten eine numerische Zuordnung und konvertieren sie so in den Datentyp „double“. Beispiel: „Low“ = 1.0, „Medium“ = 2.0 und „High“ = 3.0. Nach der Durchführung jeder Konfiguration verstehen Sie dann besser, welche Konfiguration für diese bestimmten Anwendungsfall besser funktioniert. In einigen Fällen ist es sinnvoll, eine Zeichenkettendarstellung zu verwenden. In anderen Fällen ist hingegen eine numerische Darstellung möglicherweise sinnvoller.

Zahlen

Wenn ein messbarer Unterschied darin besteht, was die Daten in einer Spalte beschreiben, sollten diese als numerische Werte dargestellt werden. Beispiele dafür sind Kosten, Einnahmen, Gewinne, Anzahlen, Summen und Durchschnitte.

Manchmal kann der Datensatz einen numerischen Wert enthalten, der nicht messbar ist, weil es sich um ein Wörterbuch oder einen inkrementellen Wert wie eine ID handelt. In unserem Beispiel könnten die Werte in der Spalte „PersonID“ vielleicht mit einem numerischen Wert verwechselt werden, wenn sie nicht mit „Person_“ begännen. Wenn die IDs als numerische Werte behandelt würden, wäre dies eine ungenaue Darstellung des Unterschieds zwischen diesen Zeilen. Best Practice in diesen Fällen ist, die ID als String darzustellen. Bevor Sie einen Datensatz nutzen, müssen Sie möglicherweise bestimmen, ob einige der numerischen Spalten in kategoriale Werte konvertiert werden sollten.

Datumsangaben

Im Kontext von maschinellem Lernen sind Datumsfeldtypen kategoriale Variablen. Obwohl Datumsangaben und Zeitstempel voneinander abgezogen werden können, besteht ein Datum aus mehreren Komponenten. Die Frage ist, welche dieser Komponenten berücksichtigt werden sollten, und wie: Sollte der Wert das Jahr, der Monat, der Tag des Monats oder Jahres oder die Stunde des Tages sein? Soll die Zeitdifferenz in Minuten angegeben werden? Um die beste Vorhersageleistung zu erhalten, sollte das Datum zumindest in einige seiner Komponenten aufgeschlüsselt werden. Ein Teil dieser Komponenten könnte kategorial sein, ein anderer numerisch.

Beispielsweise kann ein Datum in den Tag der Woche aufgeschlüsselt werden. Dies könnte als numerischer Wert (1 bis 7) oder als String-Wert („Sonntag“ bis „Samstag“) dargestellt werden.

Wochentage als Zahlen und Strings

Tabelle mit Wochentagen, die als Zahlen und Strings dargestellt sind.

Es gibt einige Probleme mit der Darstellung des Tags der Woche als numerischen Wert. Wann beginnt die Woche, am Montag oder am Sonntag? Und auch wenn der Tag der Woche relevant ist, kann er in einem zyklischen Trend verborgen sein.

In manchen Fällen kann der Trend sehr vielsagend sein, wie in Diagramm 1, wo die Woche am Montag beginnt.

Diagramm 1: Durchschnittlicher Umsatz pro Wochentag, wobei die Woche am Montag beginnt

Diagramm mit Umsätzen pro Wochentag mit einer klaren Trendlinie.

Diagramm 2 enthält die gleichen Daten wie Diagramm 1, wurde aber um einen Tag verschoben, sodass die Woche am Sonntag beginnt. Hier ist die Signifikanz der Daten bedeutend geringer.

Diagramm 2: Durchschnittlicher Umsatz pro Wochentag, wobei die Woche am Sonntag beginnt

Diagramm mit Umsätzen pro Wochentag ohne eine klare Trendlinie.

Diagramm 3 illustriert ein anderes Problem beim Verwenden der aufgeschlüsselten Komponente eines Datums als numerischen Wert. Es kann ein signifikantes Muster vorhanden sein, aber wenn es nicht linear ist, wird es übersehen. Aus diesem Grund, und da in Datumskomponenten häufig zyklische Trends (z. B. tägliche oder quartalsweise Saisonalität) vorliegen, wird empfohlen, diese Komponenten als kategoriale und nicht als numerische Werte zu verwenden.

Diagramm 3: Durchschnittlicher Umsatz pro Wochentag mit einem Hoch in der Wochenmitte

Diagramm der Umsätze pro Wochentag mit einem zyklischen Trend mit Höhepunkt in der Wochenmitte.

Qlik AutoML verwendet die automatische technische Planung von Features, um die Komponenten von Daten und Zeitstempeln in ihre eigenen distinkten Spalten aufzuteilen. Damit kann die Prognosegenauigkeit der Modelle, die Sie erstellen, verbessert werden. Automatisch erstellte Features, welche aus einem übergeordneten Datums-Feature abgeleitet wurde, werden als numerische Features eingestuft. Bei Bedarf können Sie diese Funktion überschreiben, sodass Spalten als kategorisch behandelt werden. Weitere Informationen finden Sie unter Technische Planung des Datums-Features.

Datumsdifferenzen

Datumsdifferenzen können als besserer Ersatz für inkrementelle IDs verwendet werden, weil eine inkrementelle ID nur die Reihenfolge beschreibt, in der Einträge zur Tabelle hinzugefügt wurden. Inkrementelle IDs können leicht durch Volumenänderungen (Kunden pro Tag in vielen Beispielen) verzerrt werden, während eine Datumsdifferenz diese Geschwindigkeit nicht beachtet.

Die Datumsdifferenz kann eines von verschiedenen Maßen sein: Sekunden, Stunden, Tage, Monate oder Quartale. Wählen Sie dasjenige, das für die Granularität Ihrer Daten am relevantesten ist. Wenn beispielsweise monatliche Daten betrachtet werden, hat eine Datumsdifferenz von Tagen keinen echten Wert. In diesem Fall wäre eine Datumsdifferenz in Monaten relevanter.

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!