如何处理大量分类数据

时间:2018-11-04 17:05:29

标签: python machine-learning categorical-data one-hot-encoding

我是机器学习的初学者。我有一个包含大量分类数据的大型数据集。数据是标称值。我想通过Python和scikit-learn应用SVM和决策树之类的算法来查找数据中的模式。

我的问题是,我不知道如何最好地处理此类数据。我读了很多有关“一键编码”的文章。这些示例都很简单,就像使用三种不同的颜色一样。在我的数据中,大约有30种不同的分类特征。在这些功能中,大约有200个不同的“值”。 如果我使用简单的“一键编码”,则数据帧会变得很大,并且由于用完了内存,几乎无法对数据使用任何算法。

那么这里最好的方法是什么?对编码表使用sql数据库?在“现实”世界中如何做到这一点?

提前感谢您的回答!

1 个答案:

答案 0 :(得分:1)

Sklearn不能使用决策树和随机森林来处理分类特征-它要求将它们转换为一键编码的列。但是实际上,还有一个更好的选择:

enter image description here

这称为二进制编码,它将分隔所有类型,远胜于分类列的数字编码。

解决此问题的另一种方法是使用2018-11-04T16:53:38.783Z。裁剪的想法是仅注册最大的类别,例如所有类别占所有值的5%+,并将其余类别编码为“ tail”。这是减少尺寸的另一种方法。