Lightgbm,强制使用所有功能

Lightgbm, Force use of all features

我正在尝试使用 lightgbm 对一些二进制文件进行分类,经过大量搜索我仍然无法找到一种方法来强制 lightgbm 使用我从我的数据集中提供的所有数据。当训练开始时,它说我有 83390 个数据(在我的例子中是文件),但只使用了 5XXX 个特征。 我尝试更改一些参数,例如 "min_data_in_leaf" 但它并没有真正改变。

有人可以向我解释如何调整 Lightgbm 以使其使用我拥有的所有数据吗?

2019-02-16 17:02:03,969 Train model
[LightGBM] [Warning] Starting from the 2.1.2 version, default value for the "boost_from_average" parameter in "binary" objective is true.
This may cause significantly different results comparing to the previous versions of LightGBM.
Try to set boost_from_average=false, if your old models produce bad results
[LightGBM] [Info] Number of positive: 41695, number of negative: 41695
[LightGBM] [Info] Total Bins 494351
[LightGBM] [Info] Number of data: 83390, number of used features: 5937
[LightGBM] [Info] [binary:BoostFromScore]: pavg=0.500000 -> initscore=0.000000

数据数是数据的行数,特征数是数据的列数。如果您的数据是二维数组或数据框,形状为 83390*5937,lgbm 将使用您的所有数据。

LightGBM会自动禁用不能拆分的特征,比如几乎所有值都为零(或相同)的特征。

正如@yanqi 所说,LightGBM 将自动禁用无法拆分的功能。因此,如果您强制使用所有功能,这些功能不会对模型性能产生任何影响。所以最好不要使用这些功能来节省计算资源。