Contenido del Curso
ML Introduction with scikit-learn
ML Introduction with scikit-learn
LabelEncoder
The OrdinalEncoder
and OneHotEncoder
are usually used to encode features (the X
variable).
But the target (y
variable) can also be categorical.
Let's look at the example:
import pandas as pd # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # Income is a target in this dataset X = df.drop('income', axis=1) print(y) print('All values: ', y.unique())
The LabelEncoder
is used to encode the target, regardless of whether it is nominal or ordinal.
ML models do not consider the order of the target, allowing it to be encoded as any numerical values.
LabelEncoder
encodes the target to numbers 0, 1, ...
import pandas as pd from sklearn.preprocessing import LabelEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # Income is a target in this dataset X = df.drop('income', axis=1) # Initialize a LabelEncoder object and encode the y variable label_enc = LabelEncoder() y = label_enc.fit_transform(y) print(y) # Decode the y variable back y_decoded = label_enc.inverse_transform(y) print(y_decoded)
The code above encodes the target using LabelEncoder
and then uses the .inverse_transform()
method to convert it back to the original representation.
Note
Since the
LabelEncoder
is used to transform target (y
), which is usually a single column, it works well with pandas Series, unlike theOrdinalEncoder
.
So we can just pass they
variable to the.fit_transform()
method.
¡Gracias por tus comentarios!