Die Datenvorverarbeitung ist ein integraler Bestandteil der Datenanalyse und des maschinellen Lernworkflows. In Pharostehen uns eine Reihe von Werkzeugen und Techniken zur Verfügung, um unsere Daten zu manipulieren und aufzubereiten. Eine dieser Techniken ist die One-Scorching-Codierung, eine beliebte Methode zum Umgang mit kategorialen Variablen. In diesem Weblog werden wir untersuchen, wie die One-Scorching-Codierungsmethode in Pharo verwendet wird, und ihre Bedeutung für die Datenvorverarbeitung diskutieren.
Was ist One Scorching Encoding?
One-Scorching-Codierung ist eine Datenvorverarbeitungstechnik, mit der kategoriale Variablen als binäre Vektoren dargestellt werden. Es wandelt kategoriale Variablen in ein Binärformat um, das von maschinellen Lernalgorithmen leicht verstanden und verarbeitet werden kann. Bei der One-Scorching-Codierung wird jede eindeutige Kategorie in einer Variablen in eine separate Binärspalte konvertiert, wobei ein Wert von 1 das Vorhandensein dieser Kategorie und 0 ihr Fehlen darstellt. Dieses Codierungsschema ermöglicht es Algorithmen, kategoriale Daten effektiv zu interpretieren und zu analysieren, was eine bessere Modellleistung und -genauigkeit ermöglicht.
Was ist Pharo?
Pharo ist eine rein objektorientierte Programmiersprache Und eine leistungsstarke Umgebung, die auf Einfachheit und sofortiges Suggestions ausgerichtet ist (denken Sie an IDE und Betriebssystem in einem). Wenn Sie Pharo noch nicht installiert haben, können Sie es installieren, indem Sie den Anweisungen unter folgen https://pharo.org/download.
Sobald Sie es installiert und Ihr Pharo-Picture geöffnet haben, öffnen Sie Playground (Strg+O+W).
Einrichten der erforderlichen Umgebung
Führen Sie zur Set up den folgenden Code (Strg+D) im Playground aus Datenrahmen.
Metacello new
baseline: 'DataFrame';
repository: 'github://PolyMathOrg/DataFrame/src';
load.
encodeOneHot-Methode
Diese Methode kodiert eine Datenreihe in eine Sammlung von One-Scorching-Vektoren. Die One-Scorching-Vektoren werden anhand ihrer aufsteigenden Reihenfolge den Werten der Datenreihe zugeordnet. Z.B:
#(1 3 2) sollte codiert werden als #( #( 1 0 0) #( 0 0 1) #( 0 1 0))
#(bac) sollte codiert werden als #( #( 0 1 0) #( 1 0 0) #( 0 0 1))
Kodierung von Ganzzahlen:
precise := #( 1 2 3 4 ) asDataSeries encodeOneHot."anticipated := #(
#( 1 0 0 0 )
#( 0 1 0 0 )
#( 0 0 1 0 )
#( 0 0 0 1 )
) asDataSeries."
Codierung römischer Ziffern:
precise := (#( I XIV VII XXXII ) gather: [ :each | each romanNumber ])
asDataSeries encodeOneHot."anticipated := #(
#( 1 0 0 0 )
#( 0 0 1 0 )
#( 0 1 0 0 )
#( 0 0 0 1 )
) asDataSeries."
Kodierungszeichenfolgen:
precise := #( apple avocado orange banana ) asDataSeries encodeOneHot."anticipated := #(
#( 1 0 0 0 )
#( 0 1 0 0 )
#( 0 0 0 1 )
#( 0 0 1 0 )
) asDataSeries."
Kodierung von Dezimalzahlen und großen Zahlen
precise := #( 0.5 1 2.2 3 4000 ) asDataSeries encodeOneHot."anticipated := #(
#( 1 0 0 0 0 )
#( 0 1 0 0 0 )
#( 0 0 1 0 0 )
#( 0 0 0 1 0 )
#( 0 0 0 0 1 )
) asDataSeries."
Kodierung des integrierten MNIST-Datensatzes von Pharo
Um integrierte Datensätze in Pharo zu installieren, führen Sie das folgende Metacello-Skript aus:
Metacello new
baseline: 'AIDatasets';
repository: 'github://pharo-ai/datasets';
load.
Laden Sie den Datensatz in einen Datenrahmen
df := AIDatasets loadMnistTest.
Bei der Untersuchung des Datenrahmens (Strg + I) ist ersichtlich, dass die Spalte „Beschriftung“ Ziffern im Bereich von 0 bis 9 enthält.
Eine Scorching-Kodierung der Etiketten
labels := df column: 'label'.
encodedLabels := labels encodeOneHot.
dfLabels := DataFrame withColumns: { labels. encodedLabels }
columnNames: #( labels encodedLabels).
Sie können inspizieren dfLabels
(Strg + I), um die Originalbeschriftungen und die entsprechenden One-Scorching-Vektorbeschriftungen anzuzeigen.