Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Die kategoriale Kodierung ist eine Technik zur Kodierung kategorialer Daten. Bei kategorischen Daten handelt es sich um Variablensätze, die Beschriftungsvariablen anstelle von numerischen Werten enthalten. Viele Algorithmen für maschinelles Lernen sind nicht in der Lage, kategorische Variablen zu verarbeiten. Daher ist es wichtig, die Daten in einer geeigneten Form zu kodieren, damit Sie diese Variablen vorverarbeiten können. Da Sie Ihr Modell anpassen und bewerten müssen, müssen Sie kategoriale Daten kodieren und alle Eingabe- und Ausgabevariablen in numerische Werte umwandeln. Auf diese Weise wird das Modell in der Lage sein, die Informationen zu verstehen und zu extrahieren, die das gewünschte Ergebnis liefern. Je nach der Anzahl der möglichen Werte variieren die Daten.

Die meisten kategorialen Variablen sind nominal. Diese Variablen helfen bei der Kategorisierung und Kennzeichnung der Attribute. Die Variablen enthalten verschiedene Werte, und jeder Wert steht für eine eigene Kategorie. So ist beispielsweise die Farbe eine Variable, die verschiedene Werte wie blau, grün oder gelb enthält. In ähnlicher Weise ist ein Haustier eine Variable, aber Katzen und Hunde sind separate Werte, die verschiedene Kategorien darstellen. In einem anderen Beispiel ist ein Ort eine Variable, aber der erste, der zweite und der dritte sind die Werte. Diese Kategorien können in einer natürlichen Beziehung zueinander stehen, müssen es aber nicht. Im obigen Beispiel eines Ortes können Sie sehen, dass der Ort eine Variable ist und seine Kategorien in einer natürlichen Reihenfolge stehen. Sie können diese Art von Variablen als Ordinalvariable bezeichnen.

Konvertieren von Beschriftungsdaten in numerische Werte

Es gibt zwei Schritte, um Beschriftungen oder kategoriale Daten in numerische Daten umzuwandeln:

1. Ganzzahlige Kodierung

In diesem ersten Schritt weisen Sie jedem Kategoriewert einen ganzzahligen Wert zu. Blau ist zum Beispiel 1, Grün ist 2 und Gelb ist 3. Diese Art der Kodierung lässt sich leicht umkehren. Sie können die Integer-Kodierung auch als Label-Kodierung bezeichnen. Bei vielen Variablen reicht dieser Schritt aus, um das Modell zu durchlaufen. Es gibt eine natürliche geordnete Beziehung zwischen verschiedenen ganzzahligen Werten. Sie können diese Beziehung durch einen Algorithmus für maschinelles Lernen herstellen. Betrachtet man beispielsweise ordinale Variablen wie den Ort, so sind die Kategorien bereits geordnet. Daher müssen Sie die Beziehung zwischen den Variablen nicht finden. Die Kodierung von Bezeichnungen würde also ausreichen.

2. One-Hot-Kodierung

Kategoriale Variablen enthalten keine Beziehung zwischen den Variablen wie ordinale Variablen. Daher müssen Sie den Kodierungsprozess auf eine andere Ebene bringen. Für diese Art von Daten reicht eine ganzzahlige Kodierung nicht aus. Selbst wenn Sie die Daten ohne natürliche Ordnung kodieren, werden die Kategorien nicht aneinander angepasst. Aufgrund der schlechten Leistung wird das Ergebnis unerwartet sein.

Die One-Hot-Codierung ist eine Technik, die auf die Ganzzahlendarstellung angewendet werden kann. Bei der Kodierung der Daten in diesem Schritt entfernt das Modell die ganzzahligen Variablen. Dann wird für jeden eindeutigen ganzzahligen Wert eine neue binäre Variable eingefügt. Wenn wir zum Beispiel die Farbvariable betrachten, müssen Sie 3 Kategorien kodieren. Um dieses Ergebnis zu erreichen, setzen Sie den Wert “1” für die binäre Farbvariable und “0” für die anderen.

Wie man One Hot Encoding codiert

Anhand des folgenden Beispiels können Sie den Prozess der Kodierung nachvollziehen. Um die Aufgaben einfach und schnell zu erledigen, sollten Sie Bibliotheken verwenden. Bibliotheken sind vorgefertigte Codes, die helfen, Ihre Aufgaben zu optimieren. Ohne die Verwendung relevanter Bibliotheken werden Ihre Aufgaben mühsam werden. Beginnen Sie damit, drei gängige Bibliotheken in Ihr Projekt einzubinden. Diese Bibliotheken sind sklearn, NumPy und pandas.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
importiere NumPy als np
importiere Pandas als pd

Sobald Sie sich mit den Werkzeugen ausgerüstet haben, können Sie mit der Kodierung beginnen. Um das Konzept zu verstehen, verwenden Sie diesen erfundenen Datensatz. Verwenden Sie die Panda-Bibliothek zur Eingabe des Datensatzes. Sie verwenden .read_csv und den Dateinamen, um die Datei zu öffnen.

dataset = pd.read_csv(‘erfundene_dinge.csv’)

Bis jetzt haben Sie selbsterklärende Aufgaben durchgeführt. Der nächste Schritt wird jedoch etwas kniffliger sein. Wenn Sie eine Kalkulationstabelle als Eingabe betrachten, sind Ihnen einige Spalten wichtig oder unwichtig. Um den Prozess einfach zu halten, lassen wir alle Spalten außer der letzten Spalte zu. Nachdem Sie sich überlegt haben, welche Spalten Sie einbeziehen wollen, fügen Sie die .iloc. Dies ist eine Funktion der Pandas-Bibliothek. Sie werden es verwenden, um die Daten aus einer bestimmten Spalte auszuwählen.

X = dataset.iloc[:, :-1].values

Nach der Auswahl des Segments werden wir im obigen Code die Werte mithilfe der Funktion .values einfügen. Sie können es so verstehen, dass der erste Teil des Codes die Werte auswählt und der zweite Teil die Werte in diesem Abschnitt berücksichtigt.

In diesem Beispiel wird ein Label-Encoder zusammen mit einem Hot-Encoder eingebunden. Da ein Hot-Encoder Zahlen in Binärwerte umwandelt und Sie Kategorien als Daten einbeziehen, müssen Sie zuerst die Kategorien in Zahlen umwandeln. Daher werden wir einen Label-Encoder vor einem Hot-Encoder verwenden. Richten Sie nun den LabelEncoder mit dem folgenden Code ein:

le = LabelEncoder()

Nach der Umwandlung der Kategorien in Zahlen verwenden wir die Funktion .fit_transform von sklearn. Da es sich bei sklearn um eine One-Hot-Encoder-Bibliothek handelt, werden die Zahlen in Binärwerte umgewandelt, damit das Modell sie verstehen kann. Verwenden Sie den folgenden Code für die Kodierung der ersten Spalten:

X[:, 0] = le.fit_transform(X[:, 0])

Nun sollten Sie einen Code-Encoder einfügen, um die Kodierung abzuschließen.

ohe = OneHotEncoder(categorical_features = [0])
X = ohe.fit_transform(X).toarray()

Categorical_features ist eine Funktion zur Angabe der Spalte, die mit One-Hot-Encoder kodiert werden soll. Da wir die erste Spalte kodieren, schließen wir [0] ein. Die Funktion fit_transform wandelt nun die ausgewählten Variablen in binäre Werte um.

Damit ist die Konvertierung abgeschlossen. Denken Sie daran, dass wir für die erste Spalte 0 einschließen. Wenn Sie weitere Spalten einschließen möchten, sollten Sie die Spaltennummer hinzufügen. Um mehr als eine Spalte hinzuzufügen, sollten Sie eine “for-Schleife” wie folgt hinzufügen:

le = LabelEncoder()#für 10 Spalten
for i in range(10):
X[:,i] = le.fit_transform(X[:,i])

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die kategorische Kodierung eine Technik ist, die kategorische Daten in binäre Daten umwandelt. Da das Modell für maschinelles Lernen kategorische Daten nicht verarbeiten kann, müssen Sie sie je nach Algorithmus in numerische oder binäre Daten umwandeln. Es gibt zwei Schritte, um kategorische oder beschriftete Daten in binäre Daten umzuwandeln. Die Label-Codierung ist die erste Technik zur kategorialen Codierung. Sie wandelt die Daten in eine numerische Form um. Verwenden Sie die Label-Codierung für ordinale Daten. Für nicht-ordinale Daten verwenden Sie die One-Hot-Codierungstechnik. Dies ist eine effektive Methode zur Umwandlung Ihrer Daten in die binäre Form.

Languages

Weekly newsletter

No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.