Reputation: 31
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
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