python - 解释 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")
解决方案
推荐阅读
- c# - .NET 两个以类开头的同名包
- react-native - 登录后如何将异步存储中的令牌分配给 app.js 中的标头。在本机反应
- ruby-on-rails - Angular httpClient 发布请求发送重复的相同参数和空白值,为什么?
- mongodb - 猫鼬事务期间创建集合的正确方法
- azure - 创建 Azure 存储 Blob 容器时出现错误 403(已启用存储防火墙
- python - 如何使用 Python 在一个单元格中读取逗号分隔的字符串
- php - 显示来自 MySQL 的表,而无需对每个列名进行编码
- php - 如何使用 php 应用 MySQL 事务功能?
- julia - Julia 函数返回匿名函数
- python - 如何使用 python 从我自己的服务器发送电子邮件