日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Check failed: weights_.Size() == num_row_ (38997 vs. 383852) : Size of weights must equal to number.

發布時間:2024/5/17 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。