請先閱讀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的縮寫,意為加權正則化交替最小二乘法。該方法常用於基於矩陣分解的推薦系統中。例如 將使用者...