决策树与逻辑回归相结合
Posted
技术标签:
【中文标题】决策树与逻辑回归相结合【英文标题】:Decision Trees combined with Logistic Regression 【发布时间】:2017-06-01 05:08:15 【问题描述】:基本上我的问题与以下论文有关(仅阅读1.Introduction
部分、3.Prediction model structure
部分的开头和3.1 Decision tree feature transforms
部分就足够了,其他所有内容都可以跳过)
https://pdfs.semanticscholar.org/daf9/ed5dc6c6bad5367d7fd8561527da30e9b8dd.pdf
本文表明,与仅使用决策树或线性分类(不能同时使用两者)相比,二元分类在组合决策树 + 线性分类(例如逻辑回归)的情况下表现出更好的性能
简单来说,诀窍在于我们有几棵决策树(为简单起见,假设 2 棵树,第 1 棵树有 3 个叶节点,第 2 棵树有 2 个叶节点)和一些实值特征向量 x 作为所有决策树的输入
所以,
- 如果第一棵树的决策是leaf node 1
,第二棵树的决策是leaf node 2
,那么线性分类器将接收二进制字符串[ 1 0 0 0 1 ]
- 如果第一棵树的决策是leaf node 2
,第二棵树的决策是leaf node 1
,那么线性分类器将接收二进制字符串[ 0 1 0 1 0 ]
等等
如果我们只使用决策树(没有线性分类),显然我们将有class 100
/class 010
/class 001
用于第一棵树,class 10
/class 01
用于第二棵树,但在此该方案将树的输出组合成二进制字符串,然后馈送到线性分类器。所以不清楚如何训练这些决策树?我们有的是前面提到的向量 x 和 click/no-click,这是线性分类的输出,而不是树
有什么想法吗?
【问题讨论】:
【参考方案1】:对我来说,您需要通过最小化 log-loss 标准(二元分类)来执行提升决策树。一旦你训练了你的树(假设你有 2 棵树,3 片叶子和 2 片叶子)。然后为每个实例预测每棵树的叶子索引。
示例 例如,如果您获得树 1 的叶子 1 和第二棵树的叶子 2。 IE 你得到一个 (1, 0, 0, 0, 1) 的向量,它是一个 二进制向量 而不是字符串。那么你有两个策略:
您根据树木预测的结果训练一个线性分类器(例如:逻辑回归),您的数据集具有维度 (N*5),其中 N 是您的实例数。您将训练二进制数据的逻辑回归。
您将维度 5 的向量与初始特征向量连接起来,然后执行线性分类器。您将在真实数据和二进制数据上训练逻辑回归。
【讨论】:
@Rachit Ait Abdesselam 感谢您的反馈。所以,据我了解,您的意思是我的树将是二元分类树,我将使用 (x, y) 对训练它们,其中 y 是click|no-click
我的线性分类器将通过 (x, y) 对进行训练,其中 x 是来自树的二进制向量,y 是相同的click|no-click
在树训练中?我想,在线性分类器的训练过程中,树应该保持不变
对于第一条评论,是的。对于第二条评论,首先你需要在学习后保持树不变,因为如果你更新树,你需要更新线性分类器。然后正如我在回复中所说,取决于您的数据。您可以选择仅对树的输出(结果叶的索引)执行线性分类器,或者将树的输出与学习树中使用的初始特征连接起来。这里是一个例子csie.ntu.edu.tw/~r01922136/kaggle-2014-criteo.pdf以上是关于决策树与逻辑回归相结合的主要内容,如果未能解决你的问题,请参考以下文章