One Hot Encoder Classes

Viewed 45

I have a data with 46 classes. Because the 46th class is small in splitting it moves to tet and it doesn't exist in train. now my onehotencoder has 45 classes but after all I need to train my model with 46 classes. What can be done?

from sklearn.preprocessing import OneHotEncoder
num_labels = 46

#creating instance of one-hot-encoder
encoder = OneHotEncoder(handle_unknown='ignore')

#perform one-hot encoding on 'team' column 
e_sh['one_hot_labels'] =list(encoder.fit_transform(e_sh[['Label']]).toarray())
1 Answers

If you need to train the model with more classes, OneHotEncoder must be refitted on the new dataset with the new classes.

Otherwise, ignore them with handle_unknown just like you are doing.

Related