Niloufar Modir
Niloufar Modir

Reputation: 31

One Hot Encoder Classes

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())

Upvotes: 1

Views: 565

Answers (1)

SystemSigma_
SystemSigma_

Reputation: 1435

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.

Upvotes: 1

Related Questions