Factorization Machines Classification Model
spark.fmClassifier.Rdspark.fmClassifier fits a factorization classification model against a SparkDataFrame.
Users can call summary to print a summary of the fitted model, predict to make
predictions on new data, and write.ml/read.ml to save/load fitted models.
Only categorical data is supported.
Usage
spark.fmClassifier(data, formula, ...)
# S4 method for SparkDataFrame,formula
spark.fmClassifier(
  data,
  formula,
  factorSize = 8,
  fitLinear = TRUE,
  regParam = 0,
  miniBatchFraction = 1,
  initStd = 0.01,
  maxIter = 100,
  stepSize = 1,
  tol = 1e-06,
  solver = c("adamW", "gd"),
  thresholds = NULL,
  seed = NULL,
  handleInvalid = c("error", "keep", "skip")
)
# S4 method for FMClassificationModel
summary(object)
# S4 method for FMClassificationModel
predict(object, newData)
# S4 method for FMClassificationModel,character
write.ml(object, path, overwrite = FALSE)Arguments
- data
- a - SparkDataFrameof observations and labels for model fitting.
- formula
- a symbolic description of the model to be fitted. Currently only a few formula operators are supported, including '~', '.', ':', '+', and '-'. 
- ...
- additional arguments passed to the method. 
- factorSize
- dimensionality of the factors. 
- fitLinear
- whether to fit linear term. # TODO Can we express this with formula? 
- regParam
- the regularization parameter. 
- miniBatchFraction
- the mini-batch fraction parameter. 
- initStd
- the standard deviation of initial coefficients. 
- maxIter
- maximum iteration number. 
- stepSize
- stepSize parameter. 
- tol
- convergence tolerance of iterations. 
- solver
- solver parameter, supported options: "gd" (minibatch gradient descent) or "adamW". 
- thresholds
- in binary classification, in range [0, 1]. If the estimated probability of class label 1 is > threshold, then predict 1, else 0. A high threshold encourages the model to predict 0 more often; a low threshold encourages the model to predict 1 more often. Note: Setting this with threshold p is equivalent to setting thresholds c(1-p, p). 
- seed
- seed parameter for weights initialization. 
- handleInvalid
- How to handle invalid data (unseen labels or NULL values) in features and label column of string type. Supported options: "skip" (filter out rows with invalid data), "error" (throw an error), "keep" (put invalid data in a special additional bucket, at index numLabels). Default is "error". 
- object
- a FM Classification model fitted by - spark.fmClassifier.
- newData
- a SparkDataFrame for testing. 
- path
- The directory where the model is saved. 
- overwrite
- Overwrites or not if the output path already exists. Default is FALSE which means throw exception if the output path exists. 
Value
spark.fmClassifier returns a fitted Factorization Machines Classification Model.
summary returns summary information of the fitted model, which is a list.
predict returns the predicted values based on a FM Classification model.
Note
spark.fmClassifier since 3.1.0
summary(FMClassificationModel) since 3.1.0
predict(FMClassificationModel) since 3.1.0
write.ml(FMClassificationModel, character) since 3.1.0
Examples
if (FALSE) {
df <- read.df("data/mllib/sample_binary_classification_data.txt", source = "libsvm")
# fit Factorization Machines Classification Model
model <- spark.fmClassifier(
           df, label ~ features,
           regParam = 0.01, maxIter = 10, fitLinear = TRUE
         )
# 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)
}