gbdt如何对连续特征离散化

  统计/机器学习 数据预处理 特征选择    浏览次数: 1053
0

有时候对连续特征处理时,例如年龄,需要离散化,但是不知道怎样离散化比较合适,听说gbdt可以离散化,请问是怎样实现的?

 

无限不循环   2017-10-30 11:25



   1个回答 
1

我抛砖引玉一下。

对连续特征离散化是决策树本身就可以做到的,而不是非要gradient boost。

决策树是这样做的。

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

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

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

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


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



弼码温   2017-10-30 12:01



  相关主题

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

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

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

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

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

为什么决策树中用熵而不是基尼不纯度来作为划分依据?   1回答

在进行数值编码时出现错误,怎么解决?   1回答

python中如何产生交互项?   0回答

对于组合特征怎么理解?   1回答

一个特征有两个可选的值,只需满足其中一个即可,该如何处理?   1回答

在分类问题中,有什么方法可以得到特征的重要性?   2回答

partial dependence是什么意思?   0回答



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

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

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

我们谢绝答非所问。

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

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