LightGBM 不直接在原始数据上进行训练。它将连续特征离散化为直方图 bin,尝试组合分类特征,并自动处理缺失值和

Dataset 类负责处理这些预处理,并保存输入数据的这种替代表示形式。

lgb.Dataset(
  data,
  params = list(),
  reference = NULL,
  colnames = NULL,
  categorical_feature = NULL,
  free_raw_data = TRUE,
  label = NULL,
  weight = NULL,
  group = NULL,
  init_score = NULL
)

参数

data

一个 matrix 对象、一个 dgCMatrix 对象、一个表示文本文件(CSV、TSV 或 LibSVM)路径的字符串,或一个表示二进制 lgb.Dataset 文件路径的字符串

params

一个参数列表。有关参数及其有效值的列表,请参阅 文档中的“数据集参数”部分

reference

参考数据集。当 LightGBM 创建数据集时,它会进行一些预处理,例如将连续特征分箱到直方图中。如果您想将现有数据集的相同 bin 边界应用于新的 data,请将该现有数据集传递给此参数。

colnames

列名

categorical_feature

分类特征。这可以是一个特征名称的字符向量,也可以是一个包含特征索引的整数向量(例如 c(1L, 10L) 表示“第一列和第十列”)。

free_raw_data

LightGBM 从表格数据构建其数据格式,称为“Dataset”。默认情况下,R 端上的该 Dataset 对象不保留原始数据的副本。这减少了 LightGBM 的内存消耗,但也意味着 Dataset 对象一旦构建就无法更改。如果您希望在构建后能够更改 Dataset 对象,请将 free_raw_data 设置为 FALSE

label

用作目标变量的标签向量

weight

样本权重的数值向量

group

用于排序学习任务。一个整数向量,描述如何将行分组,作为来自同一组候选结果的有序结果进行排序。例如,如果您有一个包含 100 个文档的数据集,其中 group = c(10, 20, 40, 10, 10, 10),这意味着您有 6 个组,其中前 10 条记录在第一个组中,记录 11-30 在第二个组中,依此类推。

init_score

初始分数是 LightGBM 将从中进行提升的基础预测

返回值

构建好的数据集

示例

# \donttest{
data(agaricus.train, package = "lightgbm")
train <- agaricus.train
dtrain <- lgb.Dataset(train$data, label = train$label)
data_file <- tempfile(fileext = ".data")
lgb.Dataset.save(dtrain, data_file)
#> [LightGBM] [Info] Saving data to binary file /tmp/RtmpViPAUB/file13c558b8a1e2.data
dtrain <- lgb.Dataset(data_file)
lgb.Dataset.construct(dtrain)
#> [LightGBM] [Info] Load from binary file /tmp/RtmpViPAUB/file13c558b8a1e2.data
# }