AI|再聊决策树模型

本文深入讨论决策树模型,涵盖目标函数的自定义、处理不平衡学习问题的策略和超参数搜索技术。作者强调了正确设计目标函数的重要性,介绍了配平样本和调整学习目标的方法,并探讨了XGBoost的超参数优化。此外,还提到了决策树与神经网络的结合,如XBNet和PyTorch Tabular框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:邵可佳( 墨迹天气 算法专家 )

大家好,上次我们探索了一下和决策树模型相关的话题,但都没有深入展开去讲

今天闲来无事,和大家再聊聊决策树模型,这次谈论的话题稍微复杂一点 

不要说什么决策树out之类的话,我可是不赞同的哦

也同时给大家分享几点工作中的心得,希望对大家研究算法带来新的启发和思路。

01 决策树的目标函数

通常我们在设定机器学习任务的时候,只需要使用已知的几种决策树框架,使用系统自带的目标函数即可,例如xgboost回归任务时就可以选用reg:squarederror 

但有时候我们会面临一些较复杂的任务,目标函数也会变得很复杂(例如不是线性变化的loss),这时候就可以通过自定义目标函数的方式实现

相信XGBoost自定义目标函数就难倒了一批人:

  一是大家很少会用到自定义目标函数的场景

  二是xgboost自定义目标函数的门槛要高

神经网络自定义lossXGBoost的官方文档说明,目标函数中必须提供两个输出:grad 和 hess 

https://xgboost.readthedocs.io/en/stable/tutorials/custom_metric_obj.html 

grad代表梯度,hess代表grad的偏导数 

注意:这里国内大部分文章将偏导和偏导数混淆不清,很容易误导人,一字之差含义却大不相同 

我们一定要注意区分导数导函数,有的文章甚至堂而皇之说导函数简称导数,简直给本已非常模糊的概念变得更加难懂,真是一场英文知识到中文知识翻译的重大车祸现场 

这里明确下: 

导数英文 Derivative 

导函数英文 Derivative function (function一字之差,万万不能少) 

偏导默认是偏导函数,求出来的结果是一个表达式,而偏导数是一个数值,所以求偏导数的方式也是不同的: 

scipy.misc.derivative 用于求解导函数值 (简称导数)

sympy.diff 用于取得代数形式的导函数

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值