ml_naive_bayes {sparklyr} | R Documentation

## Spark ML – Naive-Bayes

### Description

Naive Bayes Classifiers. It supports Multinomial NB (see here) which can handle finitely supported discrete data. For example, by converting documents into TF-IDF vectors, it can be used for document classification. By making every vector a binary (0/1) data, it can also be used as Bernoulli NB (see here). The input feature values must be nonnegative.

### Usage

    ml_naive_bayes(x, formula = NULL, model_type = "multinomial",
      smoothing = 1, thresholds = NULL, weight_col = NULL,
      features_col = "features", label_col = "label",
      prediction_col = "prediction", probability_col = "probability",
      raw_prediction_col = "rawPrediction", uid = random_string("naive_bayes_"),
      ...)

### Arguments

`x` | A `spark_connection`, `ml_pipeline`, or a `tbl_spark`.
`formula` | Used when `x` is a `tbl_spark`. R formula as a character string or a formula. This is used to transform the input dataframe before fitting, see ft_r_formula for details.
`model_type` | The model type. Supported options: `"multinomial"` and `"bernoulli"`. (default = `multinomial`)
`smoothing` | The (Laplace) smoothing parameter. Defaults to 1.
`thresholds` | Thresholds in multi-class classification to adjust the probability of predicting each class. Array must have length equal to the number of classes, with values > 0 excepting that at most one value may be 0. The class with largest value `p/t` is predicted, where `p` is the original probability of that class and `t` is the class's threshold.
`weight_col` | (Spark 2.1.0+) Weight column name. If this is not set or empty, we treat all instance weights as 1.0.
`features_col` | Features column name, as a length-one character vector. The column should be single vector column of numeric values. Usually this column is output by `ft_r_formula`.
`label_col` | Label column name. The column should be a numeric column. Usually this column is output by `ft_r_formula`.
`prediction_col` | Prediction column name.
`probability_col` | Column name for predicted class conditional probabilities.
`raw_prediction_col` | Raw prediction (a.k.a. confidence) column name.
`uid` | A character string used to uniquely identify the ML estimator.
`...` | Optional arguments; see Details.

### Details

When `x` is a `tbl_spark` and `formula` (alternatively, `response` and `features`) is specified, the function returns a `ml_model` object wrapping a `ml_pipeline_model` which contains data pre-processing transformers, the ML predictor, and, for classification models, a post-processing transformer that converts predictions into class labels. For classification, an optional argument `predicted_label_col` (defaults to `"predicted_label"`) can be used to specify the name of the predicted label column. In addition to the fitted `ml_pipeline_model`, `ml_model` objects also contain a `ml_pipeline` object where the ML predictor stage is an estimator ready to be fit against data. This is utilized by `ml_save` with `type = "pipeline"` to faciliate model refresh workflows.

### Value

The object returned depends on the class of `x`.

- `spark_connection`: When `x` is a `spark_connection`, the function returns an instance of a `ml_predictor` object. The object contains a pointer to a Spark `Predictor` object and can be used to compose `Pipeline` objects.

- `ml_pipeline`: When `x` is a `ml_pipeline`, the function returns a `ml_pipeline` with the predictor appended to the pipeline.

- `tbl_spark`: When `x` is a `tbl_spark`, a predictor is constructed then immediately fit with the input `tbl_spark`, returning a prediction model.

- `tbl_spark`, with `formula`: specified When `formula` is specified, the input `tbl_spark` is first transformed using a `RFormula` transformer before being fit by the predictor. The object returned in this case is a `ml_model` which is a wrapper of a `ml_pipeline_model`.

### See Also

See http://spark.apache.org/docs/latest/ml-classification-regression.html for more information on the set of supervised learning algorithms.

Other ml algorithms: `ml_aft_survival_regression`, `ml_decision_tree_classifier`, `ml_gbt_classifier`, `ml_generalized_linear_regression`, `ml_isotonic_regression`, `ml_linear_regression`, `ml_linear_svc`, `ml_logistic_regression`, `ml_multilayer_perceptron_classifier`, `ml_one_vs_rest`, `ml_random_forest_classifier`

### Examples

    ## Not run:
    sc <- spark_connect(master = "local")
    iris_tbl <- sdf_copy_to(sc, iris, name = "iris_tbl", overwrite = TRUE)

    partitions <- iris_tbl %>%
      sdf_partition(training = 0.7, test = 0.3, seed = 1111)

    iris_training <- partitions$training
    iris_test <- partitions$test

    nb_model <- iris_training %>%
      ml_naive_bayes(Species ~ .)

    pred <- sdf_predict(iris_test, nb_model)

    ml_multiclass_classification_evaluator(pred)

    ## End(Not run)

[Package sparklyr version 0.8.4 Index]