У меня возникла проблема с загрузкой набора данных из двоичного файла.
Он был сохранен с помощью метода `.save_binary()`
Я попробовал следующее для загрузки данных
import lightgbm as lgb
dataset = lgb.Dataset("./lgb_dataset_valid.bin", free_raw_data=False)
dataset.construct()
print(dataset.feature_name)
print(dataset.label)
print(dataset.label.shape)
print(dataset.data)
print(dataset.get_data())
print(dataset.num_data())
print(dataset.num_feature())
Выходы:
[LightGBM] [Info] Load from binary file './lgb_dataset_valid.bin'
['attribute(domain_rank)', 'attribute(host_rank)', 'attribute(page_rank)', 'attribute(quality_signal_malware_score)'...]
[1. 1. 0. ... 0. 1. 1.]
(156909,)
"./lgb_dataset_valid.bin"
"./lgb_dataset_valid.bin"
156909
690
Почему я могу получить доступ к данным по именам функций и меткам, но НЕ к фактическим данным?
Я хотел бы получить доступ к массиву numpy , а не строку в файле.
Есть ли обходной путь?
РЕДАКТИРОВАТЬ:
Я уверен, что данные есть, я можно обучить с его помощью простой бустер:
params = {"objective":"lambdarank", "metric":"ndcg", "eval_at":5}
lgb.train(params, dataset, valid_sets=[dataset], callbacks=[lgb.log_evaluation()])
который выводит:
[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.027034 seconds.
You can set `force_row_wise=true` to remove the overhead.
And if memory is not enough, you can set `force_col_wise=true`.
[LightGBM] [Info] Total Bins 71931
[LightGBM] [Info] Number of data points in the train set: 156909, number of used features: 578
[1] training's ndcg@5: 0.830028
[2] training's ndcg@5: 0.88106
[3] training's ndcg@5: 0.892419
Подробнее здесь: https://stackoverflow.com/questions/786 ... bm-dataset