python - 如何对具有两个值的列进行单热编码?

标签 python scikit-learn one-hot-encoding

如果我用 3 个可能的值对一列进行单热编码,如下所示:

from sklearn import preprocessing
lb = preprocessing.LabelBinarizer()
lb.fit([0, 1, 2])
lb.classes_
lb.transform([1, 0])

然后我得到:

array([[0, 1, 0],
       [1, 0, 0]])

这正是我想要的。 3 列 = 每个可能值 1 列。

但是,如果我有两个可能的值,如下所示:

lb.fit([0, 1])
lb.classes_
lb.transform([1, 0])

我得到:

array([[1],
       [0]])

即使我有 2 个可能的值,它也只有 1 列。在这种情况下我希望得到的结果是:

array([[0, 1],
       [1, 0]])

在这种情况下如何获得 2 列结果?

最佳答案

您可以使用OneHotEncoder 。例如:

In [37]: oh = preprocessing.OneHotEncoder(sparse=False)

In [38]: oh.fit([[0], [1]])
Out[38]:
OneHotEncoder(categorical_features='all', dtype=<type 'float'>,
       handle_unknown='error', n_values=2, sparse=False)

In [39]: oh.transform([[1], [0]])
Out[39]:
array([[ 0.,  1.],
       [ 1.,  0.]])

关于python - 如何对具有两个值的列进行单热编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41815790/

相关文章:

python - 如何在Python中删除重复的短语?

python - 绘制具有 7 个特征的 Scikit Logistic 回归的决策边界

python - 按组和虚拟代码分类变量转换长格式分类数据

javascript - Django 设计模式 - 在加载时填充客户端 JavaScript 变量的方法

python - 懒惰飞扬的鸟可以存活的最长时间 - 2 个阵列之间的连续间隙

python - 在 scikit-learn 中使用 DecisionTreeClassifier 修复 100% 的准确率

python-3.x - Pandas 数据框中的列级解析

python - 将 Pandas Dataframe 列转换为一个热标签

r - 为什么我们在 R 中的 model.matrix 函数中提到 -1 ?是为了一种热编码还是有其他原因?

python - 在项目目录下的终端上输入 "flask run"后发生了什么?