[机器学习]XGBoost 训练时使用Weight,AUC指标的计算总结

在训练XGB的时候, xgb.DMatrix()函数里有个weight的参数,可以给样本设置权重,这样xgb就可以在设置了权重的样本集上训练只要DMatrix()函数里设置了weight参数,打印出来的metric都是在加了权重的数据集上计算出来的。先放个代码,放个打印出来的logloss和auc

tain.txt,test.txt 为标准带weight的libsvm格式   label:weight  1:feat1 2:feat2 ……

import os
train = os.path.join(dataset_path, "train.txt")
test = os.path.join(dataset_path, "test.txt")

roc_auc_score函数中有个参数是sample_weight,可以给样本设置权重。

一 DMatrix读取libsvm目录

 

计算AUC时,不带Weight与 带Weight如果下结果:

二 DMatrix读取X,y,Weight

 三 XGBClassifier fit时设置sample_weight

XGBClassifier传入了train的weight在fit时,但是计算AUC时,对train与test都是不带weight计算的

 

 四 XGB训练进使用Weight总结

       1.使用Dmatrix方式训练时,因为train test都有weight, 在训练过程中都会打印AUC(带weight)

       2. 使用XGBClassifier fit模型时,只传了train的weight,模型训练时会使用weight的信息建树,但是打印metric时, train与test计算AUC 不是不带weight信息

所以如果使用带weight的样本进行训练时,XGB打印的信息因训练方式数据格式区别会有不同的打印结果。但是总体来说,使用XGBClassifier训练更好,因为之后预测样本时,样本不会有weight信息,这时计算预测集的AUC时的信息,与XGBClassifier fit时打印的信息是保持一样的。

加了权重样本的AUC如何计算_大豆木南的博客-CSDN博客_加权auc

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年5月22日
下一篇 2022年5月22日

相关推荐