如何在 scikit-learn 上编码多层次分类?
How to encode categorical with many levels on scikit-learn?
伙计们。
我有一个大数据集(60k 个样本,具有 50 个特征)。其中一项功能(这对我来说非常重要)是工作名称。我想对许多作业名称进行编码以适应某些模型,例如线性回归或 SVC。但是,我不知道如何处理它们。
我尝试使用 pandas 虚拟变量和 Scikit-learn One-hot Encoding
,但它生成了许多我在测试集上可能不会遇到的特征。我尝试使用 scikit-learn LabelEncoder()
,但在编码变量 float() > str() error
时我也遇到了一些错误。例如
你们会推荐我处理这几个分类特征吗?谢谢大家
有多种方法可以实现您想要的。我个人认为 HashingVectorizer
很稳健。您可能最想尝试一下,尤其是当您有许多(并且可能是稀疏的)特征时。另一种选择是 DictVectorizer
.
在此处查看示例 http://scikit-learn.org/stable/modules/feature_extraction.html and http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html。您可以轻松修改它们以满足您的目的。
另一种解决方案是,您可以使用目标变量对分类变量进行双变量分析。你会得到什么是每个级别如何影响目标的结果。一旦你得到这个,你就可以组合那些对数据有相似影响的级别。这将帮助您减少水平数量,并且每个井都会产生重大影响。
伙计们。 我有一个大数据集(60k 个样本,具有 50 个特征)。其中一项功能(这对我来说非常重要)是工作名称。我想对许多作业名称进行编码以适应某些模型,例如线性回归或 SVC。但是,我不知道如何处理它们。
我尝试使用 pandas 虚拟变量和 Scikit-learn One-hot Encoding
,但它生成了许多我在测试集上可能不会遇到的特征。我尝试使用 scikit-learn LabelEncoder()
,但在编码变量 float() > str() error
时我也遇到了一些错误。例如
你们会推荐我处理这几个分类特征吗?谢谢大家
有多种方法可以实现您想要的。我个人认为 HashingVectorizer
很稳健。您可能最想尝试一下,尤其是当您有许多(并且可能是稀疏的)特征时。另一种选择是 DictVectorizer
.
在此处查看示例 http://scikit-learn.org/stable/modules/feature_extraction.html and http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html。您可以轻松修改它们以满足您的目的。
另一种解决方案是,您可以使用目标变量对分类变量进行双变量分析。你会得到什么是每个级别如何影响目标的结果。一旦你得到这个,你就可以组合那些对数据有相似影响的级别。这将帮助您减少水平数量,并且每个井都会产生重大影响。