Gruppieren von Daten in Containern

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Teilt numerische Daten in Klassen ein

Kategorie: Skalieren und Reduzieren

Hinweis

Giltnur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Gruppendatenmodul in Bins-Modul in Machine Learning Studio (klassisch) verwenden, um Zahlen zu gruppieren oder die Verteilung kontinuierlicher Daten zu ändern.

Das Modul Gruppieren von Daten in Containern unterstützt mehrere Optionen für die Quantisierung von Daten. Sie können die Festlegung der Randwerte der Quantisierung und die Aufteilung der Werte auf die Container anpassen. Beispielsweise können Sie folgende Aktionen ausführen:

  • Geben Sie manuell eine Reihe von Werten ein, die als Grenzen der Quantisierung dienen sollen.
  • Berechnen Sie Entropiebewertungen, um eine Informationswerte für jeden Bereich zu ermitteln, um die Bins im Prädiktivmodell zu optimieren. + Zuweisen von Werten zu Bins mithilfe von Quantiles oder Quantilbewertungen.
  • Steuern der Anzahl der Werte in jedem Bin kann auch gesteuert werden.
  • Erzwingen Sie eine gleichmäßige Verteilung der Werte auf die Container.

Weitere Informationen zur Quantisierung und Gruppierung

Das Binning oder Gruppieren von Daten (manchmal als Quantisierung bezeichnet) ist ein wichtiges Tool zum Vorbereiten numerischer Daten für maschinelles Lernen und ist in Szenarien wie folgenden nützlich:

  • Eine Spalte mit fortlaufenden Zahlen hat zu viele eindeutige Werte für eine effektive Modellierung. Daher weisen Sie die Werte automatisch oder manuell Gruppen zu, um einen kleineren Satz von separaten Bereichen zu erstellen.

    Sie können beispielsweise Entropieergebnisse verwenden, die von Gruppendaten in Bins generiert werden, um die optimalen Gruppierungen von Datenwerten zu identifizieren und diese Gruppen als Features in Ihrem Modell zu verwenden.

  • Ersetzen Sie eine Zahlenreihe durch kategorische Werte, die bestimmte Bereiche repräsentieren.

    Sie können z. B. Werte in der Spalte „Alter“ gruppieren, indem Sie benutzerdefinierte Bereiche für demografische Benutzerdaten angeben, z. B. 1-15, 16-22, 23-30 usw.

  • Ein Datenset hat einige wenige Extremwerte, die alle weit außerhalb des erwarteten Bereichs liegen, und diese Werte haben einen übergroßen Einfluss auf das trainierte Modell. Um die Verzerrung im Modell zu mindern, können Sie die Daten in eine einheitliche Verteilung umwandeln, indem Sie die Quantiles (oder die Gleiche Höhe) verwenden.

    Bei dieser Methode bestimmt das Modul Gruppieren von Daten in Containern die idealen Containerpositionen und Containerbreiten, um sicherzustellen, dass in jeden Container ungefähr die gleiche Anzahl von Stichproben fällt. Dann werden die Werte in den Containern abhängig von der gewählten Normalisierungsmethode entweder in Perzentile transformiert oder einer Containernummer zugeordnet.

Beispiele für die Quantisierung

Das folgende Diagramm zeigt die Verteilung der numerischen Werte vor und nach der Quantisierung mit der Quantilmethode. Beachten Sie, dass im Vergleich zu den Rohdaten auf der linken Seite die Daten in Container aufgeteilt und in eine normale Größe transformiert wurden.

raw data and data binned and normalized

Ein weiterer Ansatz für das Binning wird in der Brustkrebserkennungsprobe gezeigt, in der Gruppendaten in Bins verwendet werden, um Patienten verschiedene Kontroll- und Testgruppen zuzuweisen, um sicherzustellen, dass jede Gruppe eine gleiche Anzahl von Patienten hat.

Da es so viele Möglichkeiten zur Gruppierung von Daten gibt, die alle anpassbar sind, empfehlen wir Ihnen, mit verschiedenen Methoden und Werten zu experimentieren. Der Abschnitt "Beispiele " enthält Links zu Beispielexperimenten, die veranschaulichen, wie die verschiedenen Binningalgorithmen verwendet werden.

Konfigurieren von „Gruppieren von Daten in Containern“

  1. Fügen Sie das Modul "Gruppendaten in Bins " zu Ihrem Experiment in Studio (klassisch) hinzu. Dieses Modul finden Sie in der Kategorie "Datentransformation" unter "Skalieren" und "Reduzieren".

  2. Verbinden Sie das Dataset, das die zu gruppierenden numerischen Daten enthält. Die Quantisierung kann nur auf Spalten angewendet werden, die numerische Daten enthalten.

    Wenn das Dataset nicht numerische Spalten enthält, verwenden Sie das Modul Select Columns in Dataset (Spalten im Dataset auswählen), um eine Teilmenge der Spalten für die Arbeit auszuwählen.

  3. Legen Sie den Quantisierungsmodus fest. Der Binning-Modus bestimmt andere Parameter, sodass Sie zuerst die Binning-Modusoption auswählen müssen! Die folgenden Typen werden für die Quantisierung unterstützt:

    Entropy MDL: Diese Methode erfordert, dass Sie die Spalte auswählen, die Sie vorhersagen möchten, und die Spalten, die Sie in Bins gruppieren möchten. Anschließend wird ein Durchlauf über die Daten ausgeführt und versucht, die Anzahl der Bins zu bestimmen, die die Entropie minimieren. Mit anderen Worten: Es wählt eine Reihe von Bins aus, mit denen die Datenspalte die Zielspalte am besten vorhersagen kann. Anschließend wird die Binnummer zurückgegeben, die jeder Zeile Ihrer Daten in einer Spalte mit dem Namen zugeordnet <colname>quantizedist.

    Wenn die Entropy MDL-Methode keine Möglichkeit finden kann, die Daten anfänglich zu verbinden, um eine gute Vorhersage zu erzielen, weist sie allen Daten einen einheitlichen Bin zu. Dies bedeutet nicht, dass die Spalte kein guter Prädiktor ist. In diesem Fall können Sie andere Methoden verwenden, um die Anzahl der Bins zu finden, die Entropie minimieren und die Daten zu einem besseren Prädiktor machen.

    Diese Methode gibt die tatsächlichen Entropiebewertungen nicht zurück.

    Quantiles (Quantilen): Die Quantilmethode teilt Werte basierend auf dem Perzentilrang in Klassen ein. Quantile werden auch als Quantisierung mit gleicher Höhe bezeichnet.

    Equal Width (Gleiche Breite): Bei dieser Option müssen Sie die Gesamtanzahl der Container angeben. Die Werte aus der Datenspalte werden in den Containern so platziert, dass jeder Container das gleiche Intervall zwischen Start- und Endwerten aufweist. Dies führt dazu, dass einige Container möglicherweise mehr Werte enthalten, wenn ein bestimmter Punkt von sehr vielen Daten umgeben ist.

    Custom Edges (Benutzerdefinierte Grenzen): Sie können die Werte angeben, mit denen jeder Container beginnt. Der Grenzwert ist immer die untere Grenze des Containers. Nehmen Sie z. B. an, Sie möchten Werte in zwei Containern gruppieren, einen mit Werten größer als 0 und einen mit Werten kleiner als oder gleich 0. In diesem Fall würden Sie für Binsränder 0 in der durch Kommas getrennten Liste von Binsrändern eingeben. Die Ausgabe des Moduls wäre 1 und 2, was den Containerindex für jeden Zeilenwert angibt.

    Gleichheitsbreite mit benutzerdefiniertem Start und Stopp: Diese Methode ähnelt der Option "Gleichheitsbreite ", sie können jedoch sowohl untere als auch obere Bin-Begrenzungen angeben.

  4. Anzahl der Bins: Wenn Sie die Entropy MDL-, Quantiles- und Gleichheitsbreiten-Binningmodi verwenden, verwenden Sie diese Option, um anzugeben, wie viele Bins oder Quantiles erstellt werden sollen.

  5. Verwenden Sie für Columns to bin (Zu gruppierende Spalten) die Spaltenauswahl, um die Spalten mit den Werten auszuwählen, die Sie in Containern gruppieren möchten. Spalten müssen einen numerischen Datentyp aufweisen.

    Auf alle gewählten geeigneten Spalten wird die gleiche Quantisierungregel angewendet. Falls Sie die Quantisierung für einige Spalten unter Verwendung einer anderen Methode vornehmen müssen, müssen Sie daher eine separate Instanz von Gruppieren von Daten in Containern für jeden Satz der Spalten verwenden.

    Warnung

    Wenn Sie eine Spalte auswählen, die keinen zulässigen Typ aufweist, wird ein Laufzeitfehler generiert. Das Modul gibt einen Fehler zurück, sobald es eine Spalte eines nicht zulässigen Typs findet. Wenn Sie einen Fehler erhalten, überprüfen Sie alle ausgewählten Spalten. Der Fehler listet nicht alle ungültigen Spalten auf.

  6. Geben Sie für den Ausgabemodus an, wie die quantifizierten Werte ausgegeben werden sollen.

    • Anfügen: Erstellt eine neue Spalte mit gruppierten Werten und fügt sie an die Eingabetabelle an.

    • Inplace (Direkt): Ersetzt die ursprünglichen Werte durch die neuen Werte im Dataset.

    • ResultOnly: Gibt nur die Ergebnisspalten zurück.

  7. Wenn Sie den Quantisierungsmodus Quantiles (Quantilen) auswählen, verwenden Sie die Option Quantile normalization (Quantilnormalisierung), um zu bestimmen, wie Werte vor der Sortierung in Quantile normalisiert werden. Beachten Sie, dass die Normalisierung der Werte die Werte transformiert, sich jedoch nicht auf die endgültige Anzahl von Bins auswirkt. Ein Beispiel finden Sie unter "Effekte verschiedener Normalisierungsmethoden".

    Die folgenden Normalisierungstypen werden unterstützt:

    • Percent (Prozent): Werte werden innerhalb des Bereichs [0,100] normalisiert.

    • PQuantile: Werte werden innerhalb des Bereichs [0,1] normalisiert.

    • QuantileIndex: Werte werden innerhalb des Bereichs [1,Anzahl von Bins] normalisiert.

  8. Wenn Sie die Option Custom Edges (Benutzerdefinierte Grenzen) auswählen, geben Sie eine durch Kommas getrennte Liste von Zahlen ein, die als Diskretisierungsrandwert im Textfeld + Comma-separated list of bin edges (durch Komma getrennte Liste von Diskretisierungsrandwerten) verwendet werden sollen. Die Werte markieren den Punkt, der die Container unterteilt. Wenn Sie also einen Diskretisierungsrandwert eingeben, werden zwei Container generiert. Wenn Sie zwei Diskretisierungsrandwerte eingeben, werden drei Container generiert usw.

    Die Werte müssen in der Reihenfolge der Container sortiert werden, vom niedrigsten zum höchsten.

  9. Wenn Sie die Option verwenden, müssen Sie die Begrenzungen der Bins mit der gleichen Breite mit dem benutzerdefinierten Start und Stopp angeben.

    Definieren Sie die untere Grenze des ersten Bins, indem Sie einen Wert in das Textfeld "Erste Randposition " eingeben.

    Definieren Sie die untere Grenze des letzten Bins, indem Sie einen Wert in das Textfeld "Letzte Randposition " eingeben.

  10. Markieren Sie Spalten als kategorisiert: Wählen Sie diese Option aus, um automatisch eine Metadatenkennzeichnung zur Spalte der binned-Werte hinzuzufügen. Das Metadaten-Flag gibt an, dass die quantisierten Spalten als kategorisierte Variablen behandelt werden sollen.

  11. Führen Sie das Experiment aus, oder wählen Sie dieses Modul aus, und klicken Sie auf "Ausführen".

Ergebnisse

Das Modul Gruppieren von Daten in Containern gibt ein Dataset zurück, in dem jedes Element entsprechend dem angegebenen Modus quantisiert wurde.

Außerdem wird eine Quantisierungstransformation zurückgegeben. Dies ist eine Funktion, die an das Modul Anwenden der Transformation übergeben werden kann, um neue Beispiele von Daten mit dem gleichen Quantisierungsmodus und den gleichen Parametern zu gruppieren.

Um zu sehen, wie gut die Binningmethode als Prädiktor funktioniert, können Sie auf die Datasetausgabe aus Gruppendaten in Bins klicken und die Beschriftungsspalte mit der binnierten Spalte vergleichen. Wenn die Gruppierung zu Bins prädiktiv ist, sollten sich die Werte in der Kreuzregistermatrix in einigen Zellen konzentrieren.

Tipp

Denken Sie daran, wenn Sie die Quantisierung für Ihre Trainingsdaten verwenden, müssen Sie dieselbe Quantisierungsmethode für Daten verwenden, die Sie für Tests und Vorhersagen verwenden. Dies schließt die Quantisierungsmethode, die Containerspeicherorte und die Containerbreite ein.

Um sicherzustellen, dass Daten immer mit derselben Quantisierungsmethode transformiert werden, empfehlen wir Ihnen, nützliche Datentransformationen zu speichern und sie dann mit dem Modul Anwenden der Transformation auf andere Datasets anzuwenden.

Beispiele

Beispiele für die Anwendung der Quantisierung in Machine Learning-Szenarien finden Sie im Azure AI-Katalog:

  • Brustkrebserkennung: In diesem Beispiel wird binning verwendet, um Patienten in gleiche Gruppen zu unterteilen, indem das Feld "Patienten-ID" verwendet wird.
  • Flugverzögerungsvorhersage: Verwendet quantile Normalisierung, um Fälle in 10 Bins zu sortieren.
  • Twitter-Stimmungsanalyse: Bewertungen werden in fünf Bins gruppiert, die die Bewertungsergebnisse darstellen.

Technische Hinweise

Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.

Auswirkungen verschiedener Normalisierungsmethoden

Wenn Sie die Option auswählen, werden die Werte vor dem Binning transformiert. Die Methode, die Sie für die Normalisierung auswählen, wirkt sich daher stark auf die numerischen Werte aus.

In der folgenden Tabelle wird beispielsweise veranschaulicht, fLengthwie die Werte in einer einzelnen Spalte aus dem Teleskop-Dataset mit jedem der Normalisierungsmethoden transformiert werden. Die Spalte , fLengthwurde zufällig für die Abbildung der Ausgabewerte aus jeder Option ausgewählt und verfügt nicht über eine normale Verteilung.

Quelle (fLength) pQuantile QuantileIndex Prozent
28.7967 0.363636 4 36.363636
31.6036 0.454545 5 45.454545
162.052 0.909091 10 90.909091
23.8172 0.272727 3 27.272727

Die Binningergebnisse sind für jede Methode ähnlich.

Die folgende Grafik zeigt die Verteilung von Werten in der Spalte vor und nach dem Binning mithilfe der Standardeinstellung von 10 Bins.

Comparison of Normalization Methods for Binning

Details zur Implementierung

  • Während der Quantisierung wird jede Zahl einem Bin zugeordnet, indem der Wert mit den Werten der Ränder verglichen wird.

    Wenn der Wert z. B. 1,5 ist und die Ränder 1, 2 und 3 sind, wird das Element der Nummer 2 zugeordnet. Ein Wert von 0,5 würde der Klasse 1 (Unterlaufklasse) und ein Wert von 3,5 der Klasse 4 (Überlaufklasse) zugeordnet.

  • Wenn die zu klassierende (quantisierende) Spalte dünn besetzt ist, wird beim Auffüllen der Ergebnisspalte die Klassenindexverschiebung (Quantilverschiebung) verwendet. Die Verschiebung wird so festgelegt, dass eine 0 in dünn besetzter Spalte immer der Klasse mit dem Index 0 (d. h. dem Quantil mit Wert 0) zugeordnet wird.

  • Nullen in dünn besetzten Spalten werden aus der Eingabe- an die Ausgabespalte weitergegeben.

  • Bei der Verarbeitung von dichten Spalten werden immer Ergebnisse mit einem minimalen Klassenindex gleich 1 erzeugt, d. h., der minimale Quantilwert entspricht dem kleinsten Wert in der Spalte. Gleichzeitig erzeugt die Verarbeitung einer geringen Spalte ein Ergebnis mit variablem Mindestcontainerindex (minimaler Quantile-Wert).

  • Alle NaNs und fehlenden Werte werden aus der Eingabespalte an die Ausgabespalte weitergegeben. Eine Ausnahme bei dieser Vorgehensweise tritt nur auf, wenn das Modul Quantilindizes zurückgibt. In diesem Fall werden alle NaNs zu fehlenden Werten hochgestuft.

  • Klassenindizes basieren auf 1. Dies ist die naturgemäße Konvention für Quantile (erstes Quantil, zweites Quantil usw.). Eine Ausnahme tritt nur auf, wenn die zu klassierende Spalte dünn besetzt ist.

Erwartete Eingaben

Name type BESCHREIBUNG
Dataset Datentabelle Zu analysierendes Dataset.

Modulparameter

Name Range type Standard BESCHREIBUNG
Klassierungsmodus List QuantizationMode Quantile Auswählen einer Klassierungsmethode.
Zu klassierende Spalten. any ColumnSelection NumericAll Auswählen von Spalten für die Quantisierung.
Ausgabemodus any OutputTo Angeben, wie quantisierte Spalten ausgegeben werden sollen.
Tag columns as categorical any Boolean true Angeben, ob Ausgabespalten als Kategorie gekennzeichnet werden sollen.
Anzahl der Klassen >=1 Integer 10 Angeben der gewünschten Anzahl von Klassen.
Quantile normalization any BinningNormalization Auswählen der Methode für die Normalisierung von Quantilen.
First edge position any Float 0,0 Angeben des Werts für die erste Klassenkante.
Bin width any Float 0.5 Angeben einer benutzerdefinierten Klassenbreite.
Last edge position any Float 1,0 Angeben des Werts für die letzte Klassenkante.
Comma-separated list of bin edges any String Eingeben einer durch Trennzeichen getrennten Liste mit Zahlen, die als Klassenkanten verwendet werden sollen.

Ausgaben

Name type BESCHREIBUNG
Quantized dataset Datentabelle Dataset mit quantisierten Spalten.
Binning transformation ITransform-Schnittstelle Die Transformation, die die Quantisierung auf das Dataset anwendet.

Ausnahmen

Ausnahme Beschreibung
Fehler 0003 Eine Ausnahme tritt auf, wenn mindestens eine Eingabe NULL oder leer ist.
Fehler 0004 Eine Ausnahme tritt auf, wenn der Parameter kleiner als oder gleich dem bestimmten Wert ist.
Fehler 0011 Eine Ausnahme tritt auf, wenn das übergebene Spaltensatzargument nicht für eine der Datasetspalten gilt.
Fehler 0021 Eine Ausnahme tritt auf, wenn die Anzahl der Zeilen in einigen der an das Modul übergebenen Datasets zu klein ist.
Fehler 0024 Eine Ausnahme tritt auf, wenn das Dataset keine Bezeichnungsspalte enthält.
Fehler 0020 Eine Ausnahme tritt auf, wenn die Anzahl der Spalten in einigen der an das Modul übergebenen Datasets zu klein ist.
Fehler 0038 Eine Ausnahme tritt auf, wenn die Anzahl der erwarteten Elemente ein exakter Wert sein sollte, aber dies nicht der Fall ist.
Fehler 0005 Eine Ausnahme tritt auf, wenn der Parameter kleiner als ein bestimmter Wert ist.
Fehler 0002 Eine Ausnahme tritt auf, wenn mindestens ein Parameter nicht analysiert oder vom angegebenen Typ in den vom Zielmethodentyp erforderlichen Typ konvertiert werden konnte.
Fehler 0019 Eine Ausnahme tritt auf, wenn die Spalte sortierte Werte enthalten soll, aber das nicht der Fall ist.
Fehler 0039 Die Ausnahme tritt auf, wenn der Vorgang fehlgeschlagen ist.
Fehler 0075 Eine Ausnahme tritt auf, wenn bei der Quantisierung eines Datasets eine ungültige Quantisierungsfunktion verwendet wird.

Eine Liste der Fehler, die für Studio-Module (klassische) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.

Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.

Siehe auch

Scale and Reduce
Normalisieren von Daten
Beschneiden von Werten