【问题标题】:What is the meaning of the value of the boosted tree?boosted树的值是什么意思?
【发布时间】:2020-02-08 20:12:12
【问题描述】:

我画了一棵树,在树的末端(在树叶中)显示了一些值。它们是什么意思?

# model parameters
colsample_bytree = 0.4
objective = 'binary:logistic'
learning_rate = 0.05
eval_metric = 'auc'
max_depth = 8
min_child_weight = 4
n_estimators = 5000
seed = 7

# create and train model
bst = xgb.train(param, 
                dtrain, 
                num_boost_round = best_iteration)

dot = xgb.to_graphviz(bst, rankdir='LR')
dot.render("trees1")

我想,这是一个预测的概率分数,但叶子的值的范围高达 0.01。而预测概率分数的范围最大为 1。可能是,这意味着预测概率分数除以 10(例如叶值 = 0.01 表示预测概率 = 0.1)?

为什么有些叶子有负值(例如-0.01)? 谢谢。

【问题讨论】:

    标签: graphviz decision-tree xgboost


    【解决方案1】:

    叶子的值是您的“eval_metric”,是您拆分的本地 :)。对你来说,它是 AUC。

    这里是一棵树的所有属性:

    n_nodes = estimator.tree_.node_count
    children_left = estimator.tree_.children_left
    children_right = estimator.tree_.children_right
    feature = estimator.tree_.feature
    threshold = estimator.tree_.threshold
    

    来自文档:https://scikit-learn.org/stable/auto_examples/tree/plot_unveil_tree_structure.html#sphx-glr-auto-examples-tree-plot-unveil-tree-structure-py

    在文档中找不到它,但“tree_.impurity”确实存在。

    【讨论】:

    • Gwendal,我尝试将 auc-metric 更改为 log-loss 等。叶节点中的值 - 相等。我试图学习文档,但没有找到,如何理解 - 在树的末尾预测什么类或预测什么概率?将不胜感激。
    • 每个末端叶子都是初始种群的一部分,分配给一个结果。该字段匹配所有分支拆分,这意味着再次匹配这些拆分的每个新数据都将获得相同的值。 i.stack.imgur.com/WNZ8q.jpg这里是一个很好的例子,每一个结束节点,叶子,都包含一个类属性,也就是人口分配结果
    • 格温达尔,谢谢。我是否理解正确,每一片叶子都是整个种群的一部分。这意味着,summa 中的所有叶子值都会给出 - 1?在您在评论中链接的图表中,每个叶子中都有预测的类。如何向每个叶子添加预测类?
    • 以我的图片为例。所有叶子样本都等于第一个叶子样本。关于您的价值观,因为您的指标是 AUC。我猜这是叶子种群的 AUC,这意味着您的模型对给定样本的性能。与预测值无关:)。需要在文档中检查。
    • 我想我在这里对树表示的理解已经走到了尽头。我可能会给出错误的见解:s 对不起亚历克斯
    猜你喜欢
    • 2016-03-17
    • 2012-10-01
    • 2021-06-02
    • 1970-01-01
    • 2021-11-18
    • 2014-04-10
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多