对于数值特征,决策树是如何决定阈值的?

  统计/机器学习 监督式学习 特征选择    浏览次数:3094        分享
3

对于一个二元特征,决策树很自然地进行分叉,一个树枝的条件是该特征为0,另一个树枝是该特征为1。


对于一个数值特征,决策树的节点分叉通常是,如果x < 某个数,进入这个子决策树,如果x >= 某个数,进入另外一个子决策树。我想知道的是,对于数值变量这个阈值(上面的“某个”)是如何确定的呢?


谢谢!

 

Gavin   2017-09-26 13:58



   3个回答 
8
  • 首先对这个连续变量排序。比如说年龄,把所有样本中年龄的数值从小到大排序。
  • 在数据没有重复的假设下,如果有n个样本,那么排序后的数据之间应该有n-1个间隔。
  • 决策树会对这n-1个间隔进行逐一尝试(分叉),每个不同的分叉,会带来不同的gini指数,我们最终选gini指数最小的那个分叉作为最优分叉,也就是阈值。

理论上是这样进行的,但是实际情况是为了一些计算优化,可能会进行一些随机搜索,而不一定是遍历。

上面这个过程就把那个连续变量进行了一分为二(第一次离散化),比如说年龄被分成了0到20岁,20到100岁。

接下来,当决策树继续生长时,之前一分为二的连续特征可能会再次被选中。比如说20到100岁这个分叉被选中,我们再次重复上面那三个步骤,再去寻找下一个次分叉的阈值。这次得到的结果可能是20到35,35到100岁。

以此反复,这样一个连续变量就不停地被离散化,直到模型达到停止的条件。


SofaSofa数据科学社区DS面试题库 DS面经

弼码温   2017-11-02 22:25

4

假如训练集上有Age这么个特征,数值分别为

10,11, 16, 18, 20, 35

那么在这个节点上,算法会自动考虑下面几种划分的可能

Age <=10 和 Age>10

Age <=11 和 Age>11

Age <=16 和 Age>16

Age <=18 和 Age>18

Age <=20 和 Age>20

六个数值点,所以就有5个对应划分的可能。对这5个可能一一尝试,选出损失函数最小的那个。


SofaSofa数据科学社区DS面试题库 DS面经

AlphaCat   2017-12-01 11:31

3

对于数值特征,决策树会对所有取值一一尝试,直到选择到最好的。

对于分类,就是对应gini最小

对于回归,就是对应rmse最小


SofaSofa数据科学社区DS面试题库 DS面经

WinJ   2017-11-04 13:07



  相关主题

怎么理解决策树是模型自己在做interaction?   2回答

随机森林给出的变量的Importance是怎么来的   2回答

gbdt如何对连续特征离散化   1回答

随机森林每次用多少个特征?   2回答

Adaboost里的树有没有可能权重是负数?   1回答

决策树可以做多元分类吗?   1回答

Gradient tree boosting和random forest (随机森林) 有什么区别和联系   1回答

随机森林是如何计算测试样本的概率的?   1回答

对于树模型,需不需要特征筛选   1回答

python sklean中的决策树是用的哪一种决策树算法?   2回答

关于knn算法中kd树的问题   1回答

决策树算法ID3,C4.5和CART的特点、异同?   3回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!