【问题标题】:Scikit Learn - Random Forest: How continuous feature is handled?Scikit Learn - 随机森林:如何处理连续特征?
【发布时间】:2015-12-16 17:30:43
【问题描述】:

随机森林接受数字数据。通常带有文本数据的特征被转换为数字类别,并且连续的数字数据被输入,因为它没有离散化。 RF如何处理创建节点的连续数据?它会在内部对连续的数值数据进行分类吗?或将每个数据视为离散级别。

例如: 我想向 RF 提供一个数据集(当然是在对文本特征进行分类之后)。 RF如何处理连续数据? 是否建议在喂食之前离散化连续数据(在这种情况下为经度和纬度)?还是这样做信息丢失了?

【问题讨论】:

    标签: scikit-learn random-forest discretization


    【解决方案1】:

    据我了解,您问的是如何为连续特征选择阈值。分箱发生在您的类已更改的值处。例如,考虑以下一维数据集,x 作为特征,y 作为类变量

    x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    y = [ 1, 1, 0, 0, 0, 0, 0, 1, 1, 1]
    

    将考虑两种可能的候选削减:(i) 2 到 3 之间(实际上看起来像 x

    因此,建议您自己离散化数据。用上面的数据想想这个。例如,如果您在 5 个 bin [1, 2 | 3, 4 | 5, 6 | 7, 8 | 9, 10] 中离散化数据,则您会错过最佳拆分(因为 7 和 8 将在一个 bin 中)。

    【讨论】:

      【解决方案2】:

      您在询问DecisionTrees。因为RandomForest 是集成模型,并且它本身对数据一无所知,所以它完全依赖于来自基本估计器(在本例中为DecisionTrees)的决策,并聚合它们。

      那么,DecisionTree 如何处理连续特征:查看this 官方文档页面。 DecisionTreeClassifier 安装在连续数据集(Fisher irises)上,如果你看一下树的图片 - 它在每个节点中都有阈值,超过该节点的某些选定特征。

      【讨论】:

        猜你喜欢
        • 2015-09-28
        • 2016-06-02
        • 2013-06-07
        • 2015-03-28
        • 2015-09-20
        • 2012-12-20
        • 2014-07-30
        • 2015-02-20
        • 2013-04-26
        相关资源
        最近更新 更多