制作决策树时如何处理数据

Posted

技术标签:

【中文标题】制作决策树时如何处理数据【英文标题】:How to deal with data when making a decision tree 【发布时间】:2018-04-02 23:06:19 【问题描述】:

我正在尝试为从 Kaggle 获得的数据集制作决策树。 由于我没有任何处理现实数据集的经验,因此我不知道如何处理数据的清理、集成和缩放(主要是缩放)。

例如,假设我有一个包含实数的特征。因此,我想通过将其扩展到特定数量的组(用于制作决策树)来将该功能变为分类数据之类的东西。

在这种情况下,我不知道有多少组数据对于决策树来说是合理的。 我确信这取决于特征数据的分布和目标数据集中唯一值的数量,但我不知道如何通过查看分布和目标数据集找到正确的猜测。 我最好的猜测是将特征的数据划分为与目标数据集的唯一值数量相似的数量。 (我什至不知道这是否有意义..)

当我从学校学习时,我已经为每个特征提供了 2-5 个分类数据,因此我不必担心,但现实生活与学校完全不同。

请帮帮我。

【问题讨论】:

现实生活中的分类可能非常严格。在没有标签的情况下,也可以考虑无监督学习。 【参考方案1】:
    对于 DT,您需要数字数据是数字的、分类的 - 是假人风格的。数字列不需要缩放。 要处理分类数据,请使用 one-hot 编码。请确保在 one-hot 编码之前,您拥有相当大量的每个特征 (>= 5%),否则将小变量分组。 并考虑其他型号。 DT 不错,但它是老派,很容易过拟合。

【讨论】:

【参考方案2】:

您可以使用决策树回归器,无需将实数分层:http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html

这样做有助于将输入数据缩放到零均值和单位方差;这有助于防止任何大类输入主导模型

话虽如此,决策树可能不是最佳选择。尝试支持向量机或人工神经网络。或者(很可能)许多模型的集合(甚至只是一个随机森林)。

【讨论】:

是的,将输入数据缩放到零均值和单位方差是有意义的。谢谢!

以上是关于制作决策树时如何处理数据的主要内容,如果未能解决你的问题,请参考以下文章

决策树分类器如何处理全局约束?

机器学习决策树为什么对缺失值不敏感,如何处理缺失值?

如何处理类别型特征

构建决策树时的终止标准

写决策树时遇到的坑

在 Jupyter Notebook 中显示决策树时出错