我在对数据集中的某些特征进行OneHotEncoder转换后尝试进行一些数据分析,输出显示特征13和特征21是最重要的特征,但是我如何知道这些特征对应的是哪些原始特征呢?
回答:
你可以使用.categories_
属性来实现这一点。这是一个通用的示例:
import numpy as npfrom sklearn.preprocessing import OneHotEncoderohe = 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_) # 这就是你要找的那行代码
Out[1]: [array(['cat', 'dog', 'ferret'], dtype='<U6')]
现在只需索引这个数组来查找你的第16和第21个特征即可。