Вы можете использовать inverse_transform
метод sklearn.preprocessing.OneHotEncoder
, чтобы сделать это. Я проиллюстрировал это на следующем примере:
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male'], ['Female'], ['Female']]
enc.fit(X)
enc.categories_
[array(['Female', 'Male'], dtype=object)]
enc.transform([['Female'], ['Male']]).toarray()
array([[1., 0.],
[0., 1.]])
enc.inverse_transform([[0, 1], [1,0], [0, 1]])
array([['Male'],
['Female'],
['Male']], dtype=object)
Чтобы получить словарь категории к ключу, вы могли бы сделать это:
A = {}
for i in enc.categories_[0]:
A[i] = enc.transform([[i]]).toarray()
Но может быть лучший способ сделать этоэто.
Надеюсь, это поможет!