使用Prediction演算法

2021-08-29 22:41:42 字數 2289 閱讀 8957

prediction演算法使用

surprise 提供了許多built-in演算法. 所有演算法從algobase基類繼承, 當使用一些關鍵的函式時(比如predict, fit 和 test). 可以從prediction_algorithms包文件中獲得所有可以使用的演算法的詳細資訊

每乙個演算法都是surprise的乙個全域性的命名空間, 所以我們需要從surprise包中匯入演算法, 比如

一些演算法可能會使用 baseline estimates,也有一些可能會使用 similarity measure,現在我們回顧一下baselines and similarities是如何計算的

baselines estimates配置

這部分僅僅適用於最小化帶正則化的squared error

對於不同的演算法(比如svd),baselines estimates配置也是不同的,對每乙個演算法都是特定的,請參考他們各自的文件。

如果你不想對baselines estimates進行配置,它自己帶有預設的引數。

baselines可以通過隨機梯度下降法stochastic gradient descent (sgd)和交替最小二乘法alternating least squares (als)進行計算。

可以通過 bsl_options 引數進行 baselines的配置,method引數表示要使用的方法, 『als』 (預設) 或者是 『sgd』.

'reg_i':items的正則化項,對應著λ2,預設值是10

'reg_u':users的正則化項,對應著λ3,預設值是15

'n_epochs':als執行的輪數,預設是10

'reg':所要優化的損失函式的正則化項,對應著λ1和λ5,預設值是0.02

'learning_rate':sgd的學習速率,對應著γ,預設是0.005

'n_epochs':sgd執行的輪數,預設是20

不管是als還是sgd,user和item偏置(bu和 bi)初始化為0

#als初始化例子:

print

('using als'

)bsl_options =

algo = baselineonly(bsl_options=bsl_options)

using als
#sgd初始化例子:

print

('using sgd'

)bsl_options =

algo = baselineonly(bsl_options=bsl_options)

值得注意的一點是在進行相似度測量時,也可能使用 baselines, 比如pearson_baseline相似度。

不管是在用在實際的** r^ui或者其他地方,配置工作和之前的一樣。

bsl_options =

sim_options =

algo = knnbasic(bsl_options=bsl_options, sim_options=sim_options)

#knnbasic為基礎的協同過濾演算法

相似度度量配置

許多演算法使用相似度度量來估計評分,配置方法和baseline rating類似,在演算法建立時,使用sim_options進行配置,下面介紹關鍵的引數:

'name':相似度度量方法的名稱, 這些方法定義在similarities中,預設是'msd'

'user_based':控制是否計算users和items之間的相似度,這個引數對於**演算法的效能有著重要的影響,預設是true(計算users之間的相似度) false(計算items之間的相似度)

'min_support':相同items的最小數量(當'user_based'為true時)或者相同users的最小數量(當'user_based'為false時),如果滿足最小數量,那 麼相似度不為0,如果|iuv|#使用例子

sim_options =

algo = knnbasic(sim_options=sim_options)

sim_options =

algo = knnbasic(sim_options=sim_options)

使用基礎演算法,領略演算法魅力

js 利用sort進行排序 sort可以按照元素的字元編碼的順序進行排序,條件是此元素必須為字串。對於數字排序,定義規則是很重要的。比較函式 systemsort function array 氣泡排序 bubblesort function array return array 快速排序 注意地方...

mahout使用KMeans演算法

mahout提供了記憶體中和分布式的兩種kmeans聚類實現。下面是記憶體中kmeans的 示例,示例 使用了最簡單的一維向量作為輸入 tests kmeans cluster algorithm in memory,note the test uses only 1 d vector i.e.a ...

RSA演算法的使用

private string sendstr send private string receivestr receive region 加密方法 private string encrypt string content 加密方法 傳入要加密的字串 private string encrypt s...