【问题标题】: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,这是线性分类的输出,而不是树

有什么想法吗?

【问题讨论】:

    标签: machine-learning classification linear-regression logistic-regression decision-tree


    【解决方案1】:

    对我来说,您需要通过最小化 log-loss 标准(二元分类)来执行提升决策树。一旦你训练了你的树(假设你有 2 棵树,3 片叶子和 2 片叶子)。然后为每个实例预测每棵树的叶子索引

    示例 例如,如果您获得树 1 的叶子 1 和第二棵树的叶​​子 2。 IE 你得到一个 (1, 0, 0, 0, 1) 的向量,它是一个 二进制向量 而不是字符串。那么你有两个策略:

    1. 您根据树木预测的结果训练一个线性分类器(例如:逻辑回归),您的数据集具有维度 (N*5),其中 N 是您的实例数。您将训练二进制数据的逻辑回归。

    2. 您将维度 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
    猜你喜欢
    • 2018-08-18
    • 2020-03-30
    • 2015-03-31
    • 2020-05-05
    • 2015-07-23
    • 2020-08-31
    • 2017-07-30
    • 2014-11-27
    相关资源
    最近更新 更多