从 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 个特征。
在使用 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 个特征。