当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R SparkR spark.gbt用法及代码示例


说明:

spark.gbt 在 SparkDataFrame 上拟合梯度增强树回归模型或分类模型。用户可以调用summary获取拟合梯度提升树模型的摘要,调用predict对新数据进行预测,调用write.ml/read.ml保存/加载拟合模型。有关详细信息,请参阅 GBT RegressionGBT Classification

用法:

spark.gbt(data, formula, ...)

## S4 method for signature 'SparkDataFrame,formula'
spark.gbt(
  data,
  formula,
  type = c("regression", "classification"),
  maxDepth = 5,
  maxBins = 32,
  maxIter = 20,
  stepSize = 0.1,
  lossType = NULL,
  seed = NULL,
  subsamplingRate = 1,
  minInstancesPerNode = 1,
  minInfoGain = 0,
  checkpointInterval = 10,
  maxMemoryInMB = 256,
  cacheNodeIds = FALSE,
  handleInvalid = c("error", "keep", "skip")
)

## S4 method for signature 'GBTRegressionModel'
summary(object)

## S3 method for class 'summary.GBTRegressionModel'
print(x, ...)

## S4 method for signature 'GBTClassificationModel'
summary(object)

## S3 method for class 'summary.GBTClassificationModel'
print(x, ...)

## S4 method for signature 'GBTRegressionModel'
predict(object, newData)

## S4 method for signature 'GBTClassificationModel'
predict(object, newData)

## S4 method for signature 'GBTRegressionModel,character'
write.ml(object, path, overwrite = FALSE)

## S4 method for signature 'GBTClassificationModel,character'
write.ml(object, path, overwrite = FALSE)

参数:

  • data 用于训练的 SparkDataFrame。
  • formula 要拟合的模型的符号说明。目前仅支持少数公式运算符,包括'~'、':'、'+'、'-'、'*'和'^'。
  • ... 传递给该方法的附加参数。
  • type 模型类型,"regression" 或 "classification" 之一,以适合
  • maxDepth 树的最大深度 (>= 0)。
  • maxBins 用于离散连续特征和选择如何在每个节点上分割特征的最大 bin 数。更多的 bin 提供更高的粒度。必须 >= 2 且 >= 任何类别特征中的类别数。
  • maxIter 最大迭代次数的参数 (>= 0)。
  • stepSize 用于每次优化迭代的步长参数。
  • lossType GBT 试图最小化的损失函数。对于分类,必须是"logistic"。对于回归,必须是"squared" (L2) 和"absolute" (L1) 之一,默认为"squared"。
  • seed 用于随机数生成的整数种子。
  • subsamplingRate 用于学习每个决策树的训练数据的分数,在 (0, 1] 范围内。
  • minInstancesPerNode 拆分后每个孩子必须拥有的最小实例数。如果拆分导致左或右子节点的数量少于 minInstancesPerNode,则拆分将被视为无效而丢弃。应该 >= 1。
  • minInfoGain 在树节点处考虑的拆分的最小信息增益。
  • checkpointInterval 设置检查点间隔 (>= 1) 或禁用检查点 (-1) 的参数。注意:如果未设置检查点目录,此设置将被忽略。
  • maxMemoryInMB 分配给直方图聚合的最大内存(以 MiB 为单位)。
  • cacheNodeIds 如果为 FALSE,算法会将树传递给执行器以将实例与节点匹配。如果为 TRUE,算法将为每个实例缓存节点 ID。缓存可以加快对更深层次树的训练。用户可以通过设置 checkpointInterval 来设置缓存检查点的频率或禁用它。
  • handleInvalid 如何处理分类模型中字符串类型的特征和标签列中的无效数据(看不见的标签或NULL值)。支持的选项:"skip"(过滤掉包含无效数据的行)、"error"(抛出错误)、"keep"(将无效数据放入特殊的附加存储桶中,索引为 numLabels)。默认为"error"。
  • object 拟合梯度增强树回归模型或分类模型。
  • x summary 返回的梯度提升树回归模型或分类模型的摘要对象。
  • newData 用于测试的 SparkDataFrame。
  • path 保存模型的目录。
  • overwrite 如果输出路径已经存在,是否覆盖。默认为 FALSE,这意味着如果输出路径存在则抛出异常。

返回:

spark.gbt 返回拟合的梯度提升树模型。

summary 返回拟合模型的汇总信息,是一个列表。组件列表包括formula(公式)、numFeatures(特征数量)、features(特征列表)、featureImportances(特征重要性)、maxDepth(树的最大深度)、numTrees(树的数量)和treeWeights(树的权重)。

predict 返回一个 SparkDataFrame,其中包含在名为 "prediction" 的列中标记的预测值。

注意:

spark.gbt 自 2.1.0

摘要(GBTRegressionModel)自 2.1.0 起

从 2.1.0 开始的 print.summary.GBTRegressionModel

摘要(GBTClassificationModel)自 2.1.0 起

从 2.1.0 开始的 print.summary.GBTClassificationModel

从 2.1.0 开始预测(GBTRegressionModel)

从 2.1.0 开始预测(GBTClassificationModel)

write.ml(GBTRegressionModel, character) 自 2.1.0 起

write.ml(GBTClassificationModel, character) 自 2.1.0 起

例子:

# fit a Gradient Boosted Tree Regression Model
df <- createDataFrame(longley)
model <- spark.gbt(df, Employed ~ ., type = "regression", maxDepth = 5, maxBins = 16)

# get the summary of the model
summary(model)

# make predictions
predictions <- predict(model, df)

# save and load the model
path <- "path/to/model"
write.ml(model, path)
savedModel <- read.ml(path)
summary(savedModel)

# fit a Gradient Boosted Tree Classification Model
# label must be binary - Only binary classification is supported for GBT.
t <- as.data.frame(Titanic)
df <- createDataFrame(t)
model <- spark.gbt(df, Survived ~ Age + Freq, "classification")

# numeric label is also supported
t2 <- as.data.frame(Titanic)
t2$NumericGender <- ifelse(t2$Sex == "Male", 0, 1)
df <- createDataFrame(t2)
model <- spark.gbt(df, NumericGender ~ ., type = "classification")

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 Gradient Boosted Tree Model for Regression and Classification。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。