当前位置:
首页 >
Check failed: weights_.Size() == num_row_ (38997 vs. 383852) : Size of weights must equal to number.
发布时间:2024/5/17
82
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Check failed: weights_.Size() == num_row_ (38997 vs. 383852) : Size of weights must equal to number.
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
XGB训练模型报错:Check failed: weights_.Size() == num_row_ (38997 vs. 383852) : Size of weights must equal to number of rows.
分析
单纯看报错应该是说什么维度没有对上,但是很奇怪,我的数据只是换了一个标签而而已,特征并没有改变,按理来说不应该有特征维度对不上的情况,所以只有可能是标签的问题。
训练集的数据是用libsvm格式存储的,看了几条数据没发现啥问题,但是特征维度太多了,所以很难一个一个看,所以打算换一种加载数据的方式。
XGB加载数据:
train = xgb.DMatrix("./data/tr_data") test = xgb.DMatrix("./data/te_data")load_svmlight_file加载数据:
load_svmlight_file("./data/tr_data")然后又报了一个错,大意是说数据中有NULL,导致解析不了。
所以现在情况就明晰了,基于前面的经验,特征不可能有问题,所以肯定是标签里面有NULL。
原来下载数据的逻辑是:
(casewhen label = 'G' then '1'when label = 'B' then '0'else NULL end) as label如果标签中有NULL,说明label中存在不为G和B的情况,突然间想起,新的标签中加入了I标签,导致最后下载数据的时候将I标签映射为了NULL,破案了。
最后将下载数据的逻辑修改,只下载label in ('G', 'B', 0, 1)的数据就OK了。
总结
以上是生活随笔为你收集整理的Check failed: weights_.Size() == num_row_ (38997 vs. 383852) : Size of weights must equal to number.的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 2021年第十二届蓝桥杯 - 省赛 -
- 下一篇: 字节跳动2018校招算法方向(第一批)