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


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


说明:

spark.als 通过交替最小二乘法学习协同过滤中的潜在因子。用户可以调用summary获取拟合的潜在因子,调用predict对新数据进行预测,调用write.ml/read.ml保存/加载拟合模型。

用法:

spark.als(data, ...)

## S4 method for signature 'SparkDataFrame'
spark.als(
  data,
  ratingCol = "rating",
  userCol = "user",
  itemCol = "item",
  rank = 10,
  regParam = 0.1,
  maxIter = 10,
  nonnegative = FALSE,
  implicitPrefs = FALSE,
  alpha = 1,
  numUserBlocks = 10,
  numItemBlocks = 10,
  checkpointInterval = 10,
  seed = 0
)

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

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

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

参数:

  • data 用于训练的 SparkDataFrame。
  • ... 传递给方法的附加参数。
  • ratingCol 评级的列名称。
  • userCol 用户 ID 的列名。 Id 必须是(或可以强制转换为)整数。
  • itemCol 项目 ID 的列名。 Id 必须是(或可以强制转换为)整数。
  • rank 矩阵分解的秩 (> 0)。
  • regParam 正则化参数(> = 0)。
  • maxIter 最大迭代次数 (>= 0)。
  • nonnegative 指示是否应用非负约束的逻辑值。
  • implicitPrefs 指示是否使用隐式偏好的逻辑值。
  • alpha 隐式偏好公式中的 alpha 参数 (>= 0)。
  • numUserBlocks 用于并行计算的用户块数(> 0)。
  • numItemBlocks 用于并行计算的项目块数(> 0)。
  • checkpointInterval 检查点间隔数 (>= 1) 或禁用检查点 (-1)。注意:如果未设置检查点目录,此设置将被忽略。
  • seed 用于随机数生成的整数种子。
  • object 拟合的 ALS 模型。
  • newData 用于测试的 SparkDataFrame。
  • path 保存模型的目录。
  • overwrite 如果输出路径已经存在,是否覆盖的逻辑值。默认为 FALSE,这意味着如果输出路径存在则抛出异常。

细节:

有关详细信息,请参阅 MLlib: Collaborative Filtering

返回:

spark.als 返回拟合的 ALS 模型。

summary 返回拟合模型的汇总信息,是一个列表。该列表包括user(用户列的名称)、item(项目列)、rating(评级列)、userFactors(估计的用户因子)、itemFactors(估计的项目因子)和rank(矩阵分解模型的秩)。

predict 返回包含预测值的 SparkDataFrame。

注意:

spark.als 自 2.1.0 起

ALS 实施的输入评级 DataFrame 应该是确定性的。非确定性数据可能会导致拟合 ALS 模型失败。例如,像重新分区后采样这样的 order-sensitive 操作会使数据帧输出不确定,例如 sample(repartition(df, 2L), FALSE, 0.5, 1618L) 。检查点采样数据帧或在采样前添加排序可以帮助使数据帧具有确定性。

摘要(ALSModel)自 2.1.0 起

从 2.1.0 开始预测(ALSModel)

write.ml(ALSModel, character) 自 2.1.0 起

例子:

ratings <- list(list(0, 0, 4.0), list(0, 1, 2.0), list(1, 1, 3.0), list(1, 2, 4.0),
                list(2, 1, 1.0), list(2, 2, 5.0))
df <- createDataFrame(ratings, c("user", "item", "rating"))
model <- spark.als(df, "rating", "user", "item")

# extract latent factors
stats <- summary(model)
userFactors <- stats$userFactors
itemFactors <- stats$itemFactors

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

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

# set other arguments
modelS <- spark.als(df, "rating", "user", "item", rank = 20,
                    regParam = 0.1, nonnegative = TRUE)
statsS <- summary(modelS)

相关用法


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