當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。