如何在scikit-learn上对多个级别的分类进行编码?

时间:2017-05-23 01:40:11

标签: python machine-learning scikit-learn

人。 我有一个大型数据集(60k样本,50个功能)。其中一个功能(与我真正相关)是工作名称。有许多工作名称我想编码以适应某些模型,如线性回归或SVC。但是,我不知道如何处理它们。

我尝试使用pandas虚拟变量和Scikit-learn One-hot Encoding,但它会生成许多我在测试集上可能不会遇到的功能。我尝试使用scikit-learn LabelEncoder(),但在编码变量float() > str() error时我也遇到了一些错误。

你们有什么建议我处理这几个分类功能?谢谢大家。

2 个答案:

答案 0 :(得分:0)

有很多方法可以达到你想要的效果。我个人觉得HashingVectorizer很健壮。如果您有许多(可能是稀疏的)功能,您可能想要尝试它。另一种选择是DictVectorizer

在这里查看示例http://scikit-learn.org/stable/modules/feature_extraction.htmlhttp://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html。您可以轻松修改它们以达到您的目的。

答案 1 :(得分:0)

另一个解决方案是,您可以对带有目标变量的分类变量进行双变量分析。您将获得的结果是每个级别如何影响目标的结果。一旦掌握了这一点,就可以合并对数据有类似影响的那些级别。这将帮助您减少级别数,并且每口井都会产生重大影响。