当前位置: 首页 > 面试题库 >

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

曹奇文
2023-03-14
问题内容

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


问题答案:

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

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



 类似资料:
  • 我正在机器学习项目中使用和从对数据集中的标签(国家名称)进行编码。一切正常,我的模型运行良好。该项目将根据包括客户所在国家在内的许多特征(数据)对银行客户是否继续或离开银行进行分类。 当我想预测(分类)一个新客户(仅一个)时,我的问题就出现了。新客户的数据仍未预处理(即,国家名称未编码)。如下所示: 在我学习机器学习的在线课程中,讲师打开包含编码数据的预处理数据集,手动检查法国代码,并在中进行更新

  • 问题内容: 我目前在我的项目中使用类型,并且遇到问题。 上面的代码中的可以是或。这是类型的原因。 我知道不是。 我需要知道的是如何使它工作。 问题答案: 可编码需要知道要转换的类型。 首先,我将尝试解决不知道类型的问题,看看是否可以解决它并使它更简单。 否则,我目前认为解决您的问题的唯一方法就是使用如下所示的泛型。

  • 这次我们不将数据直接写在Python代码中,而是放到两个文本文件里:athletesTrainingSet.txt和athletesTestSet.txt。 我会使用第一个文件中的数据来训练分类器,然后使用测试文件里的数据来进行评价。 文件格式大致如下: 文件中的每一行是一条完整的记录,字段使用制表符分隔。 我要使用运动员的身高体重数据来预测她所从事的运动项目,也就是用第三、四列的数据来预测第二列

  • 如何对字符串进行百分比编码,如RFC 3986中所述?也就是说,我不想(依我看,很奇怪)对www url表单进行编码,因为这是不同的。 如果重要的话,我正在编码的数据不一定是一个完整的URL。

  • 问题内容: 我有一个数据集,其中的类是不平衡的。类别为“ 1”或“ 0”,其中类别“ 1”:“ 0”的比率为5:1。如何在带有随机森林的sklearn中计算每个类别的预测误差以及相应的重新平衡权重,类似于以下链接:http : //www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#平衡 问题答案: 您可以将样本权重参数传递给随机森林拟

  • 其他反应性库(如project reactor)为出版商提供排序方法,但在mutiny中没有这种方法。他们的文档甚至没有提到这一点。 https://smallrye.io/smallrye-mutiny 现在我正在通过这样做来实现上述功能 有没有更好的方法来做到这一点?