我正在使用XGBoost
及其sklearn
的包装器。
每当我尝试打印feature_importances_
时,都会出现以下错误:
ValueError:以10为基数的的int()的文字无效
深入研究代码,我发现feature_importances_
属性正在从原始booster中调用get_fscore
方法(,参数为空)。此方法显式返回一个形状如下的字典:
{'feat_name1':5,'feat_name2':8,...,'feat_nameN':1}
因此,考虑到feature_importances_
对密钥应用int
转换,就会发现错误消息的基本原理。
keys = [int(k.replace('f', '')) for k in fs.keys()] #this is the conflictive line of code
所以,我的问题有两个:
1-这是一个错误,因此我应该报告它(甚至修复它并请求拉取)?
2-get_fscore
函数及其fmap
参数是否缺少什么?
我建议在XGBoost Github站点将其报告为一个错误:https://github.com/dmlc/xgboost/issues