【发布时间】:2016-05-08 13:09:19
【问题描述】:
我正在尝试对琐碎的数据集执行一次热编码。
data = [['a', 'dog', 'red']
['b', 'cat', 'green']]
使用 Scikit-Learn 预处理这些数据的最佳方法是什么?
首先,您会关注 Scikit-Learn 的 OneHotEncoder。但是一个热门的编码器不支持字符串作为特征;它只离散整数。
那么您将使用LabelEncoder,它将字符串编码为整数。但是随后您必须将标签编码器应用到每一列并存储这些标签编码器中的每一个(以及应用它们的列)。这感觉非常笨重。
那么,在 Scikit-Learn 中最好的方法是什么?
请不要推荐pandas.get_dummies。这就是我现在通常使用的一种热编码。但是,它的局限性在于您不能单独对训练/测试集进行编码。
【问题讨论】:
-
pandas.get_dummies 二进制编码也被决策树分类器视为连续,因此不适用于该场景。
标签: python encoding scikit-learn one-hot-encoding