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


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


说明:

针对 SparkDataFrame 拟合逻辑回归模型。它支持"binomial":带旋转的二元逻辑回归; "multinomial":多项式逻辑(softmax)回归,无需旋转,类似于 glmnet。用户可以对生成的模型进行打印、预测,并将模型保存到输入路径。

用法:

spark.logit(data, formula, ...)

## S4 method for signature 'SparkDataFrame,formula'
spark.logit(
  data,
  formula,
  regParam = 0,
  elasticNetParam = 0,
  maxIter = 100,
  tol = 1e-06,
  family = "auto",
  standardization = TRUE,
  thresholds = 0.5,
  weightCol = NULL,
  aggregationDepth = 2,
  lowerBoundsOnCoefficients = NULL,
  upperBoundsOnCoefficients = NULL,
  lowerBoundsOnIntercepts = NULL,
  upperBoundsOnIntercepts = NULL,
  handleInvalid = c("error", "keep", "skip")
)

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

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

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

参数:

  • data SparkDataFrame 用于训练。
  • formula 要拟合的模型的符号说明。目前仅支持少数公式运算符,包括'~'、'.'、':'、'+'和'-'。
  • ... 传递给该方法的附加参数。
  • regParam 正则化参数。
  • elasticNetParam ElasticNet 混合参数。对于 alpha = 0.0,惩罚是 L2 惩罚。对于 alpha = 1.0,这是 L1 惩罚。对于 0.0 < alpha < 1.0,惩罚是 L1 和 L2 的组合。默认值为 0.0,这是 L2 惩罚。
  • maxIter 最大迭代次数。
  • tol 迭代的收敛容差。
  • family 族的名称,它是模型中要使用的标签分布的说明。支持的选项:
    • "auto":根据类数自动选择族:如果类数== 1 ||类数 == 2,设置为 "binomial"。否则,设置为"multinomial"。
    • "binomial":带旋转的二元逻辑回归。
    • "multinomial":多项逻辑(softmax)回归,无需旋转。
  • standardization 是否在拟合模型之前对训练特征进行标准化。模型的系数将始终按原始比例返回,因此对用户来说是透明的。请注意,无论有无标准化,当不应用正则化时,模型应始终收敛到相同的解决方案。默认为 TRUE,与 glmnet 相同。
  • thresholds 在二进制分类中,在 [0, 1] 范围内。如果类标签 1 的估计概率 > 阈值,则预测 1,否则为 0。高阈值鼓励模型更频繁地预测 0;低阈值鼓励模型更频繁地预测 1。注意:使用阈值 p 设置此值等同于设置阈值 c(1-p, p)。在多类(或二元)分类中调整预测每个类的概率。数组的长度必须等于类的数量,其值 > 0,除了最多一个值可能是 0。预测具有最大值 p/t 的类,其中 p 是该类的原始概率,t 是类的门槛。
  • weightCol 权重列名称。
  • aggregationDepth treeAggregate 的深度(大于或等于 2)。如果特征的维度或分区的数量很大,可以将此参数调整为更大的大小。这是一个专家参数。对于大多数情况,默认值应该是好的。
  • lowerBoundsOnCoefficients 如果在有界约束优化下拟合,则系数的下限。绑定矩阵必须与二项式回归的形状(1,特征数)或多项式回归的形状(类数,特征数)兼容。是一个 R 矩阵。
  • upperBoundsOnCoefficients 如果在有界约束优化下拟合,则系数的上限。绑定矩阵必须与二项式回归的形状(1,特征数)或多项式回归的形状(类数,特征数)兼容。是一个 R 矩阵。
  • lowerBoundsOnIntercepts 如果在边界约束优化下拟合,则截距的下限。对于二项式回归,边界向量大小必须等于 1,或者对于多项式回归,边界向量大小必须等于 1。
  • upperBoundsOnIntercepts 如果在边界约束优化下拟合,则截距的上限。对于二项式回归,绑定向量大小必须等于 1,或者对于多项式回归,必须等于类数。
  • handleInvalid 如何处理字符串类型的特征和标签列中的无效数据(看不见的标签或 NULL 值)。支持的选项:"skip"(过滤掉包含无效数据的行)、"error"(抛出错误)、"keep"(将无效数据放入特殊的附加存储桶中,索引为 numLabels)。默认为"error"。
  • object spark.logit 拟合的 LogisticRegressionModel。
  • newData 用于测试的 SparkDataFrame。
  • path 保存模型的目录。
  • overwrite 如果输出路径已经存在,是否覆盖。默认为 FALSE,这意味着如果输出路径存在则抛出异常。

返回:

spark.logit 返回拟合的逻辑回归模型。

summary 返回拟合模型的汇总信息,是一个列表。该列表包括coefficients(拟合模型的系数矩阵)。

predict 返回基于 LogisticRegressionModel 的预测值。

注意:

spark.logit 自 2.1.0 起

摘要(LogisticRegressionModel)自 2.1.0 起

从 2.1.0 开始预测(LogisticRegressionModel)

write.ml(LogisticRegression, character) 自 2.1.0 起

例子:

sparkR.session()
# binary logistic regression
t <- as.data.frame(Titanic)
training <- createDataFrame(t)
model <- spark.logit(training, Survived ~ ., regParam = 0.5)
summary <- summary(model)

# fitted values on training data
fitted <- predict(model, training)

# save fitted model to input path
path <- "path/to/model"
write.ml(model, path)

# can also read back the saved model and predict
# Note that summary deos not work on loaded model
savedModel <- read.ml(path)
summary(savedModel)

# binary logistic regression against two classes with
# upperBoundsOnCoefficients and upperBoundsOnIntercepts
ubc <- matrix(c(1.0, 0.0, 1.0, 0.0), nrow = 1, ncol = 4)
model <- spark.logit(training, Species ~ .,
                      upperBoundsOnCoefficients = ubc,
                      upperBoundsOnIntercepts = 1.0)

# multinomial logistic regression
model <- spark.logit(training, Class ~ ., regParam = 0.5)
summary <- summary(model)

# multinomial logistic regression with
# lowerBoundsOnCoefficients and lowerBoundsOnIntercepts
lbc <- matrix(c(0.0, -1.0, 0.0, -1.0, 0.0, -1.0, 0.0, -1.0), nrow = 2, ncol = 4)
lbi <- as.array(c(0.0, 0.0))
model <- spark.logit(training, Species ~ ., family = "multinomial",
                     lowerBoundsOnCoefficients = lbc,
                     lowerBoundsOnIntercepts = lbi)

相关用法


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