我正在使用XGBoost开发一个欺诈检测模型。
我不能分享数据(对不起)
基于CPU的模型工作良好,并能识别出预期的欺诈行为。
基于GPU的模型识别了较低数量的欺诈行为。
因此,在相同的置信度下,基于GPU的模型识别的欺诈数量要少得多。
这是CPU的参数列表:
params = {"objective":"multi:softprob",
'booster':'dart',
'max_depth':5,
'eta':0.1,
'subsample':0.2,
'nthread':mp.cpu_count()-1,
'eval_metric':'merror',
'colsample_bytree':0.2,
'num_class':2}GPU模型培训的参数如下:
params = {"objective":"multi:softprob",
'subsample':0.2,
'gpu_id':0,
'num_class':2,
'tree_method':'gpu_hist',
'max_depth':5,
'eta':0.1,
'gamma':1100,
'eval_metric':'mlogloss'}发布于 2021-06-20 04:28:06
这是由于使用不同的“树”参数。很可能是在使用CPU时使用tree_method='exact',因为您还没有显式地给出树参数。您可以通过将tree_method='exact'添加到您的CPU params列表中来测试这一点,并检查您是否获得了与没有它相同的良好精度。但是在使用GPU时使用的是tree_method='gpu_hist'。您可以在这里上找到有关所有树方法的更多信息。
https://stackoverflow.com/questions/65713019
复制相似问题