| Type: | Package | 
| Title: | Optimized Recommending System Based on 'tensorflow' | 
| Version: | 1.0.0 | 
| Maintainer: | Giancarlo Vercellino <giancarlo.vercellino@gmail.com> | 
| Description: | Proposes a coarse-to-fine optimization of a recommending system based on deep-neural networks using 'tensorflow'. | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.2.1 | 
| Imports: | keras (≥ 2.9.0), tensorflow (≥ 2.9.0), dplyr (≥ 1.0.10), purrr (≥ 0.3.4), forcats (≥ 0.5.1), tictoc (≥ 1.0.1), readr (≥ 2.1.2), ggplot2 (≥ 3.3.6), narray (≥ 0.4.1.1), lubridate (≥ 1.7.10), RcppAlgos (≥ 2.6.0), Rmpfr (≥ 0.8-7), Metrics (≥ 0.1.4), StatRank (≥ 0.0.6), hash (≥ 2.2.6.2), reticulate (≥ 1.26) | 
| URL: | https://rpubs.com/giancarlo_vercellino/janus | 
| Suggests: | testthat (≥ 3.0.0) | 
| Config/testthat/edition: | 3 | 
| NeedsCompilation: | no | 
| Packaged: | 2022-12-16 05:09:19 UTC; gvercellino | 
| Author: | Giancarlo Vercellino [aut, cre, cph] | 
| Repository: | CRAN | 
| Date/Publication: | 2022-12-16 10:00:02 UTC | 
janus
Description
Coarse-to-fine optimization of a recommending system based on deep neural networks with Tensorflow/Keras back-end
Usage
janus(
  data,
  rating_label,
  rater_label,
  rated_label,
  task,
  skip_shortcut = FALSE,
  rater_embedding_size = c(8, 32),
  rated_embedding_size = c(8, 32),
  layers = c(1, 5),
  activations = c("elu", "selu", "relu", "sigmoid", "softmax", "softplus", "softsign",
    "tanh", "linear", "leaky_relu", "parametric_relu", "thresholded_relu", "swish",
    "gelu", "mish", "bent"),
  nodes = c(8, 512),
  regularization_L1 = c(0, 100),
  regularization_L2 = c(0, 100),
  dropout = c(0, 1),
  batch_size = 64,
  epochs = 10,
  optimizer = c("adam", "sgd", "adamax", "adadelta", "adagrad", "nadam", "rmsprop"),
  opt_metric = "bac",
  folds = 3,
  reps = 1,
  holdout = 0.1,
  n_steps = 3,
  n_samp = 10,
  offset = 0,
  n_top = 3,
  seed = 999,
  verbose = TRUE
)
Arguments
data | 
 A data frame including at least three features: rating actor, rated item and rating value.  | 
rating_label | 
 String. Single label for the feature containing the rating values.  | 
rater_label | 
 String. Single label for the feature containing the rating actors.  | 
rated_label | 
 String. Single label for the feature containing the rated items.  | 
task | 
 String. Available options are: "regr", for regression (when the rating value is numeric); "classif", for classification (when the rating value is a class or a factor).  | 
skip_shortcut | 
 Logical. Option to add a skip shortcut to improve network performance in case of many layers. Default: FALSE.  | 
rater_embedding_size | 
 Integer. Output dimension for embedding the rating actors. Default: coarse-to-fine search (8 to 32).  | 
rated_embedding_size | 
 Integer. Output dimension for embedding the rated items. Default: coarse-to-fine search (8 to 32).  | 
layers | 
 Positive integer. Number of layers for DNN. Default: coarse-to-fine search (1 to 5).  | 
activations | 
 String. String vector with the activation functions for each layer. Default: coarse-to-fine search ("elu", "selu", "relu", "sigmoid", "softmax", "softplus", "softsign", "tanh", "linear", "leaky_relu", "parametric_relu", "thresholded_relu", "swish", "gelu", "mish", "bent").  | 
nodes | 
 Positive integer. Integer vector with nodes for each layer. Default: coarse-to-fine search (8 to 512).  | 
regularization_L1 | 
 Positive numeric. Value for L1 regularization of loss function. Default: coarse-to-fine search (0 to 100).  | 
regularization_L2 | 
 Positive numeric. Value for L2 regularization of loss function. Default: coarse-to-fine search (0 to 100).  | 
dropout | 
 Positive numeric. Value for dropout parameter at each layer (bounded between 0 and 1). Default: coarse-to-fine search (0 to 1).  | 
batch_size | 
 Positive integer. Maximum batch size for training. Default: 64.  | 
epochs | 
 Positive integer. Maximum number of forward and backward propagation. Default: 10.  | 
optimizer | 
 String. Standard Tensorflow/Keras Optimization methods are available. Default: coarse-to-fine search ("adam", "sgd", "adamax", "adadelta", "adagrad", "nadam", "rmsprop").  | 
opt_metric | 
 String. Error metric to track for the coarse-to-fine optimization. Different options: for regression, "rmse", "mae", "mdae", "mape", "smape", "rae", "rrse"; for classification, "bac", "avs", "avp", "avf", "kend", "ndcg".  | 
folds | 
 Positive integer. Number of folds for repeated cross-validation. Default: 3.  | 
reps | 
 Positive integer. Number of repetitions for repeated cross-validation. Default: 1.  | 
holdout | 
 Positive numeric. Percentage of cases for holdout validation. Default: 0.1.  | 
n_steps | 
 Positive integer. Number of phases for the coarse-to-fine optimization process (minimum 2). Default: 3.  | 
n_samp | 
 Positive integer. Number of sampled models per coarse-to-fine phase. Default: 10.  | 
offset | 
 Positive numeric. Percentage of expansion of numeric boundaries during the coarse-to-fine optimization. Default: 0.  | 
n_top | 
 Positive integer. Number of candidates selected during the coarse-to-fine phase. Default: 3.  | 
seed | 
 Positive integer. Seed value to control random processes. Default: 42.  | 
verbose | 
 Printing specific messages. Default: TRUE.  | 
Value
This function returns a list including:
pipeline:
model:
configuration: DNN hyper-parameters (layers, activations, regularization_L1, regularization_L2, nodes, dropout)
model: Keras standard model description
recommend: function to use to recommend on rating actors
plot: Keras standard history plot
training_metrics: tracking of opt_metric across folds and repetitions
test_frame: testing set with the related predictions, including
testing_metrics: summary statistics for testing
time_log
Author(s)
Maintainer: Giancarlo Vercellino giancarlo.vercellino@gmail.com [copyright holder]
Giancarlo Vercellino giancarlo.vercellino@gmail.com
See Also
Useful links: