Spark MLlib交替最小二乘法ALS原始碼解析

2021-08-24 23:15:48 字數 730 閱讀 4913

請先閱讀leboop發布的博文《spark mllib協同過濾之交替最小二乘法als原理與實踐》。

核心**如下:

//定義als,引數初始化

val als = new als().setrank(50)

.setmaxiter(10)

.setregparam(0.01)

.setusercol("userid")

.setitemcol("itemid")

.setratingcol("rating")

//訓練模型

val model = als.fit(training)

下面詳細介紹這段**:

一、fit函式原始碼

fit函式在als類中,重寫了抽象類estimator的fit函式。

als類如下:

@since("1.3.0")

class als(@since("1.4.0") override val uid: string) extends estimator[alsmodel] with alsparams

with defaultparamswritable

estimator類如下:

abstract class estimator[m <: model[m]] extends pipelinestage
重寫後的fit函式如下:

交替最小二乘法

矩陣的奇異值分解 svd 特別詳細的總結,參考 1 低秩近似 2 特徵降維 相似度和距離度量 參考 在機器學習中,als指使用交替最小二乘求解的乙個協同推薦演算法。每一行代表乙個使用者 u1,u2,u8 每一列代表乙個商品 v1,v2,v8 使用者的打分為1 9分。這個矩陣只顯示了觀察到的打分,我們...

Spark MLlib隨筆 最小二乘法(1)

最小二乘法 它通過最小化誤差的平方和尋找資料的最佳函式匹配 如下圖所示,對於某個資料集 xi,yi i 0,1,n 我們需要找到一條趨勢線 圖中的虛線 能夠表達出資料集 xi,yi 這些點所指向的方向。如果這個樣本點位於趨勢線的上側,在殘差 i 0,反之則 i 0,如果樣本點位於趨勢線上則 i 0。...

初識交替最小二乘ALS

als是alternating least squares的縮寫 意為交替最小二乘法 而als wr是alternating least squares with weighted regularization的縮寫,意為加權正則化交替最小二乘法。該方法常用於基於矩陣分解的推薦系統中。例如 將使用者...