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...