如何在sklearn中编码分类变量?

发布于 2021-01-29 15:06:17

我正在尝试使用UCI存储库中的汽车评估数据集,并且想知道是否存在方便的方法来对sklearn中的分类变量进行二值化。一种方法是使用LabelBinarizer的DictVectorizer,但是在这里我得到了k个不同的特征,而为了避免共线性化,您应该只有k-1个。我想我可以编写自己的函数并删除一列,但是这种记账是乏味的,是否有一种简单的方法来执行这样的转换并得到一个稀疏矩阵?

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    建议使用DictVectorizer来生成分类变量的单编码。您可以使用sparse参数创建稀疏的CSR矩阵,而不创建密集的numpy数组。我通常不关心多重共线性,也没有注意到我倾向于使用的方法(即LinearSVC,SGDClassifier,基于树的方法)存在问题。

    修补DictVectorizer以便为每个分类功能删除一列不是问题-
    您只需DictVectorizer.vocabularyfit方法末尾删除一个术语即可。(随时欢迎提出要求!)



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看