Как правило, вы бы сериализовали свой LabelEncoder, например , например .Вы также можете использовать pickle
или joblib
модули (я бы посоветовал последнее).Код:
import joblib
joblib.dump(label_encoder, 'label_encoder.joblib')
label_encoder = joblib.load('label_encoder.joblib')
Поскольку вы спрашиваете о dict, я полагаю, вы могли бы сослаться на упаковку LabelEncoder в словарь, что я часто делаю с фреймами данных.Возьмите этот пример:
import pandas
from collections import defaultdict
from sklearn import preprocessing
df = pandas.DataFrame({
'pets': ['cat', 'dog', 'cat', 'monkey', 'dog', 'dog'],
'owner': ['Champ', 'Ron', 'Brick', 'Champ', 'Veronica', 'Ron'],
'location': ['San_Diego', 'New_York', 'New_York', 'San_Diego', 'San_Diego',
'New_York']
})
d = defaultdict(preprocessing.LabelEncoder)
fit = df.apply(lambda x: d[x.name].fit_transform(x))
fit
теперь содержит закодированные данные.Теперь мы можем изменить кодировку с помощью:
fit.apply(lambda x: d[x.name].inverse_transform(x))
Чтобы сериализовать словарь LabelEncoder
, вы должны следовать тем же путем, что и с одним:
joblib.dump(d, 'label_encoder_dict.joblib')