决策树与逻辑回归相结合

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

以上是关于决策树与逻辑回归相结合的主要内容,如果未能解决你的问题,请参考以下文章

决策树与随机森林

机器学习决策树与随机森林(转)

决策树、随机森林

如何在 Python 中绘制逻辑回归的决策边界?

机器学习系列(三十六)——回归决策树与决策树总结

选择逻辑回归或决策树