Heim  >  Artikel  >  Backend-Entwicklung  >  Wie geht One Hot Encoding mit kategorialen Variablen in Python um?

Wie geht One Hot Encoding mit kategorialen Variablen in Python um?

DDD
DDDOriginal
2024-11-11 12:38:03344Durchsuche

How does One Hot Encoding address categorical variables in Python?

Eine Hot-Codierung in Python: Adressierung kategorialer Variablen

Problemübersicht

Klassifizierungsprobleme beim maschinellen Lernen, ein großer Teil von kategorialen Variablen stellt eine Herausforderung dar und erfordert spezielle Kodierungstechniken. Eine solche Technik ist eine Hot-Codierung, die häufig vor der Übergabe von Daten an Klassifikatoren verwendet wird.

Ansatz 1: Verwendung von pd.get_dummies von Pandas

Ein gängiger Ansatz ist die Verwendung von pd. get_dummies von Pandas. Es wandelt kategoriale Spalten in mehrere Dummy-Spalten um, die jeweils eine andere Kategorie darstellen.

Beispiel:

import pandas as pd
s = pd.Series(list('abca'))
pd.get_dummies(s)
Out[]: 
     a    b    c
0  1.0  0.0  0.0
1  0.0  1.0  0.0
2  0.0  0.0  1.0
3  1.0  0.0  0.0

Alternativ werden durch die Angabe eines Präfixes mehrere Spalten für jeden Dummy erstellt:

df = pd.DataFrame({
  'A':['a','b','a'],
  'B':['b','a','c']
})
df
Out[]: 
   A  B
0  a  b
1  b  a
2  a  c

one_hot = pd.get_dummies(df['B'], prefix='B')
df = df.drop('B',axis = 1)
df = df.join(one_hot)
df  
Out[]: 
       A  Ba  Bb  Bc
    0  a   0   1   0
    1  b   1   0   0
    2  a   0   0   1

Ansatz 2: Beschäftigung Scikit-learn

Der OneHotEncoder von Scikit-learn bietet einen robusten und flexiblen Ansatz für eine Hot-Codierung.

Beispiel:

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.transform([[0, 1, 1]]).toarray()
array([[ 1.,  0.,  0.,  1.,  0.,  0.,  1.,  0.,  0.]])

Das bereitgestellte Code-Snippet veranschaulicht die Anpassung und Transformation von Beispieldaten und demonstriert den binären One-Hot Kodierung.

Stellen Sie sicher, dass Sie die für eine Hot-Kodierung erforderlichen Rechenressourcen sorgfältig abwägen, insbesondere bei großen Datensätzen. Effiziente Datenverarbeitung und Merkmalsauswahltechniken sind entscheidend für die Optimierung der Leistung und das Erreichen erfolgreicher Klassifizierungsergebnisse.

Das obige ist der detaillierte Inhalt vonWie geht One Hot Encoding mit kategorialen Variablen in Python um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn