从 OneHotEncoder 取回相应的特征

Get the corresponding features back from OneHotEncoder

在使用 OneHotEncoder 转换特征后,我试图对数据集中的某些特征进行一些数据分析,输出显示特征 13 和特征 21 是最重要的特征,但我怎么知道哪些特征做这些对应?

您可以使用 .categories_ 属性执行此操作。这是一个通用示例:

import numpy as np
from sklearn.preprocessing import OneHotEncoder

ohe = OneHotEncoder(sparse=False)

arr = np.random.choice(['dog', 'cat', 'ferret'], 10)
print(arr)
Out[100]: 
array(['ferret', 'ferret', 'dog', 'dog', 'cat', 'ferret', 'ferret',
       'ferret', 'dog', 'dog'], dtype='<U6')
encoded = ohe.fit_transform(arr.reshape(-1, 1))
print(encoded)
[[0. 0. 1.]
 [0. 0. 1.]
 [0. 1. 0.]
 [0. 1. 0.]
 [1. 0. 0.]
 [0. 0. 1.]
 [0. 0. 1.]
 [0. 0. 1.]
 [0. 1. 0.]
 [0. 1. 0.]]
print(ohe.categories_) # this is the line you're looking for
Out[1]: [array(['cat', 'dog', 'ferret'], dtype='<U6')]

现在只需索引此数组即可找到第 16 个和第 21 个特征。