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
)
一个 matrix
对象、一个 dgCMatrix
对象、一个表示文本文件(CSV、TSV 或 LibSVM)路径的字符串,或一个表示二进制 lgb.Dataset
文件路径的字符串
一个参数列表。有关参数及其有效值的列表,请参阅 文档中的“数据集参数”部分。
参考数据集。当 LightGBM 创建数据集时,它会进行一些预处理,例如将连续特征分箱到直方图中。如果您想将现有数据集的相同 bin 边界应用于新的 data
,请将该现有数据集传递给此参数。
列名
分类特征。这可以是一个特征名称的字符向量,也可以是一个包含特征索引的整数向量(例如 c(1L, 10L)
表示“第一列和第十列”)。
LightGBM 从表格数据构建其数据格式,称为“Dataset”。默认情况下,R 端上的该 Dataset 对象不保留原始数据的副本。这减少了 LightGBM 的内存消耗,但也意味着 Dataset 对象一旦构建就无法更改。如果您希望在构建后能够更改 Dataset 对象,请将 free_raw_data
设置为 FALSE
。
用作目标变量的标签向量
样本权重的数值向量
用于排序学习任务。一个整数向量,描述如何将行分组,作为来自同一组候选结果的有序结果进行排序。例如,如果您有一个包含 100 个文档的数据集,其中 group = c(10, 20, 40, 10, 10, 10)
,这意味着您有 6 个组,其中前 10 条记录在第一个组中,记录 11-30 在第二个组中,依此类推。
初始分数是 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
# }