一、使用預測算法html
Surprise提供了一堆內置算法。全部算法都派生自AlgoBase
基類,其中實現了一些關鍵方法(例如predict
,fit
和test
)。能夠在prediction_algorithms
包文檔中找到可用預測算法的列表和詳細信息 。算法
每一個算法都是全局Surprise命名空間的一部分,所以您只須要從Surprise包中導入它們的名稱,例如:函數
from surprise import KNNBasic algo = KNNBasic()
(1)、基線估計配置學習
可使用兩種不一樣的方式估算基線:優化
可使用bsl_options
在建立算法時傳遞的參數來配置基線的計算方式。此參數是一個字典,其中的鍵'method'
指示要使用的方法。可接受的值是'als'
(默認)和'sgd'
。根據其值,能夠設置其餘選項。spa
對於ALS:code
reg_i:item的正則化參數。默認爲10.htm
reg_u:user的正則化參數。默認爲15.blog
n_epochs:ALS過程的迭代次數。默認爲10.
對於SGD:
reg:優化的成本函數的正則化參數。默認爲0.02.
learning_rate:SGD的學習率。默認爲0.005.
n_epochs:SGD過程的迭代次數。默認爲20.
不論SGD仍是ALS,損失量默認爲0.
例子:
print('Using ALS') bsl_options = {'method': 'als', 'n_epochs': 5, 'reg_u': 12, 'reg_i': 5 } algo = BaselineOnly(bsl_options=bsl_options) print('Using SGD') bsl_options = {'method': 'sgd', 'learning_rate': .00005, } algo = BaselineOnly(bsl_options=bsl_options) #請注意,某些類似性度量可能會使用基線,例如 pearson_baseline類似性。不管基線是否用於實際預測r,配置的工做方式都相同 bsl_options = { 'method' : 'als' , 'n_epochs' : 20 , } sim_options = { 'name' : 'pearson_baseline' } algo = KNNBasic (bsl_options = bsl_options , sim_options = sim_options )
(2):類似度配置
許多算法使用類似性度量來估計評級。它們的配置方式與基線評級相似:您只需sim_options
在建立算法時傳遞參數便可。此參數是包含如下(全部可選)鍵的字典:
name:要使用的類似性的名稱,如similarities
模塊中所定義 。默認是'MSD'
。
user_based:是否在用戶之間或項目之間計算類似性。這對預測算法的性能有很大影響。默認是True
。
min_support:共同項目的最小數目(當'user_based'
是'True'
)或普通用戶的最小數目(當'user_based'
是 'False'
用於類似性)不爲零
shrinkage:要應用的收縮參數(僅與pearson_baseline
類似性相關 )。默認值爲100。
用法:
sim_options = {'name': 'cosine', 'user_based': False # compute similarities between items } algo = KNNBasic(sim_options=sim_options) sim_options = {'name': 'pearson_baseline', 'shrinkage': 0 # no shrinkage } algo = KNNBasic(sim_options=sim_options)