0

我正在尝试构建一个套索回归预测模型。我在 scikit-learn 中使用 OneHotEncoder 使用 one-hot aka one-of-K 方案对所有分类整数特征进行编码。根据结果​​,实际上只有 51 个参数会影响预测模型。我想调查这些参数,但它们的编码如上所述。您知道如何提取哪个分类整数特征对应于哪个热编码数组吗?谢谢!

4

3 回答 3

0

这有效:

import pickle


with open('model.pickle', 'rb') as handle:
    one_hot_categories = pickle.load(handle)      


print(one_hot_categories.categories_)
于 2021-02-10T23:12:46.003 回答
0

使用 sklearn.preprocessing.OneHotEncoder 的active_features_ feature_indices_n_values_属性,可以创建按其在 one-hot 数组中的“位置”排序的分类特征向量,如下所示:

import numpy as np
from sklearn import preprocessing

enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.active_features_ - np.repeat(enc.feature_indices_[:-1], enc.n_values_)
# array([0, 1, 0, 1, 2, 0, 1, 2, 3], dtype=int64)

此外,原始数据可以从 one-hot 数组返回,如下所示:

x = enc.transform([[0, 1, 1], [1, 2, 3]]).toarray()
# array([[ 1.,  0.,  0.,  1.,  0.,  0.,  1.,  0.,  0.],
#       [ 0.,  1.,  0.,  0.,  1.,  0.,  0.,  0.,  1.]])

cond = x > 0
[enc.active_features_[c.ravel()] - enc.feature_indices_[:-1] for c in cond]
# [array([0, 1, 1], dtype=int64), array([1, 2, 3], dtype=int64)]
于 2015-12-29T23:02:09.743 回答
-1

我设计了 ple 来增强 sklearn 的 Pipeline 和 FeatureUnion,通过它我们还可以在 one-hot-encoding 或其他预处理步骤之后回溯分类特征。此外,我们可以通过 GraphX 来“绘制”变换:例如,

例如

你可以在我的 Github 页面上找到 ple 。

于 2016-07-25T14:51:24.707 回答