首页 > 解决方案 > 解释 One-Hot-Encoded SelectKBest 结果

问题描述

我有一个由 14 个分类变量组成的银行贷款数据集。我想使用 SelectKBest 计算出 5 个最相关的功能。但是,我不断收到一条错误消息,指出“无法将字符串转换为浮点数”,因此我在数据集上使用了单热编码,并且特征选择成功。

我的问题是,输出也被编码了,所以我实际上无法分辨出哪些特征是从原始数据集中选择的。提取特征后,是否有任何方法可以反转编码?

下面是相关代码:

dataset = ['Category 1','Category 2','Category 3','Category 4','Category 5','Category 6','Category 7','Category 8','Category 9','Category 10','Category 11','Category 12','Category 13','Category 14'  ]

class_le = LabelEncoder()
Y = class_le.fit_transform(dataset['Category 14'].values)
X = dataset[['Category 1','Category 2','Category 3','Category 4','Category 5','Category 6','Category 7','Category 8','Category 9','Category 10','Category 11','Category 12','Category 13' ]].values
ohe = ColumnTransformer([('anyname', OneHotEncoder(), [0,1,2,3,4,5,6,7,8,9,10,11,12])], remainder = 'passthrough')
newdata = ohe.fit_transform(X)

# Feature Extraction
test = SelectKBest(score_func=chi2, k=5)
fit = test.fit(newdata, Y)
# Summarize scores
np.set_printoptions(precision=3)
print(fit.scores_)
features = fit.transform(newdata)
print(features[0:5, :], "summarize features")

标签: pythonscikit-learnfeature-selectionsklearn-pandasone-hot-encoding

解决方案


推荐阅读