分类回归树什么时候不能反映数据的真实趋势
发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,本质上lightgbm和xgboost都是基于分类回归树集成的学习算法,所以他们也会有一些先天缺陷:当训练数据的特征都集中在一个区间内,而测试数据偏离该区间较大时会出现不能拟合的情况,根本原因是因为分
千家信息网最后更新 2024年12月03日分类回归树什么时候不能反映数据的真实趋势
本质上lightgbm和xgboost都是基于分类回归树集成的学习算法,所以他们也会有一些先天缺陷:
当训练数据的特征都集中在一个区间内,而测试数据偏离该区间较大时会出现不能拟合的情况,根本原因是因为分类回归树对于某一个叶子节点上的数据的目标值是采取该叶子节点的目标值均值做梯度提升最终确定预测值的。
比如我有个数据如下:
x,y
1,1
2,2
3,3
4,4
5,5
6,6
7,7
8,8
9,9
10,10
11,11
12,12
13,13
14,14
15,15
16,16
17,17
18,18
19,19
20,20
21,21
22,22
23,23
24,24
25,25
26,26
27,27
28,28
这个非常明显 是 y=x
如果输入测试数据 x =200 y应该是200
但是你用下面的程序测试,发现怎么调参数都不能得到200
因为分类回归树将这些数据分到若干个叶子节点上时候,采用的目标值最大只有28,他没有再根据特征做线性关系的拟合。程序如下:
import pandas as pdimport lightgbm as lgbpath_train = "data.csv"train1 = pd.read_csv(path_train)testlist = [[200]]# 采用lgb回归预测模型,具体参数设置如下model_lgb = lgb.LGBMRegressor(objective='regression',num_leaves=28, learning_rate=0.1, n_estimators=2000, max_bin = 28, bagging_fraction = 0.8, bagging_freq = 5, feature_fraction = 0.2319, feature_fraction_seed=9, bagging_seed=9, min_data_in_leaf =10, min_sum_hessian_in_leaf = 100 ,max_depth = 10)# 训练、预测model_lgb.fit(train1[['x']].fillna(-1), train1['y'])test1 = pd.DataFrame(testlist)test1.columns = ['x']y_pred = model_lgb.predict(test1[['x']].fillna(-1))print(y_pred)print("lgb success")
套用一句话就是"没有见过星空的民族。怎会有遨游宇宙的梦想"
所以并不是什么数据都可以直接往lightgbm,xgboost里面灌的,要注意分析这个新的预测的数据的特征是否在训练数据集的特征的空间范围内。
不然挖掘的时候应该采用其他的方法分析。例如线性回归,或者将上面的博客的分类回归树底层加一个线性回归。
数据
分类
特征
叶子
目标
目标值
线性
节点
测试
训练
时候
区间
参数
程序
面的
分析
明显
最大
较大
一句话
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云服务器是属于什么类型的服务
软件开发是工程师吗
软件开发公司怎么投资
论文见刊后多久能录入数据库
外贸企业服务器
搭建一个服务器要多大
软件开发中同行评审
数据库系统阶段的特点有
绝地求生各种服务器
网络安全问题事件举例
上虞手机软件开发怎么样
计算机网络技术怎样学
web远程管理服务器设置
冰豹服务器
王者荣耀不同服务器能匹配到吗
北京互联时空网络技术
手机和网络安全讨论辨析
天龙八部3d 服务器
软件开发公司好组建么
访问虚拟机的数据库
校园网络安全法规培训
国家网络安全两个维护
新联电子软件开发
网络技术课件ppt
上海标准软件开发服务优势
珠海通讯软件开发回收价
茂名数据链软件开发代理价格
学软件开发的广州大专
dbc数据库中参数含义
人大考研数据库