LabelEncoder#
Permite normalizar las etiquetas de la variable de salida tal que contengan valores entre 0 y n_classes
- 1.
[1]:
from sklearn.preprocessing import LabelEncoder
#
# Aplicación de LabelEncoder sobre una columna de enteros
#
y = [1, 2, 2, 6]
labelEncoder = LabelEncoder()
labelEncoder.fit(y)
#
# Clases codificadas
#
labelEncoder.classes_
[1]:
array([1, 2, 6])
[2]:
#
# Transformación
#
labelEncoder.transform(y)
[2]:
array([0, 1, 1, 2])
[3]:
#
# Transformación inversa
#
labelEncoder.inverse_transform([0, 0, 1, 2])
[3]:
array([1, 1, 2, 6])
[4]:
#
# Aplicación sobre una columna de strings
#
import pandas as pd
df = pd.DataFrame(
[
["paris"],
["paris"],
["tokyo"],
["amsterdam"],
],
columns=["city"],
)
df
[4]:
city | |
---|---|
0 | paris |
1 | paris |
2 | tokyo |
3 | amsterdam |
[5]:
encoded_df = df.copy()
encoded_df["city"] = LabelEncoder().fit_transform(df.city)
encoded_df.head()
[5]:
city | |
---|---|
0 | 1 |
1 | 1 |
2 | 2 |
3 | 0 |