维克多:因子模型
--这将删除型号规格 删除模型规范low_rank_nopara; --这将创建模型规范 创建模型规范low_rank_nopara( model_type=(python)作为(w), data_item_type=(int,int,float8)as(行,列,分级), 目标=examples.factor_simple.factor_simple.se_loss, objective_agg=总和, grad_step=示例.factor_simple.factor_simple.rad ); --这将实例化模型 创建MODEL INSTANCE movielens1m 示例movielens1m(行、列、分级) 型号规格low_rank_nopara INIT_FUNCTION示例.factor_simple.factor_simple.initialize_model 当examples.factor_simple.factor_simple.stoping_condition时停止 ;
定义se_loss(m,row,col,rating): i=行-1#matlab。。。 j=第1列 v=low_rank_helper.dot(m.L[i],m.R[j])-额定值 返回v*v 定义梯度(m,行,列,额定值): L=米L R=米R i=行-1#matlab。。。 j=第1列 err=low_rank_helper.dot(L[i],R[j])-评级 e=-(m.步长*err) tempLi=列表(L[i]) low_rank_helper.scale_and_add(tempLi,R[j],e) low_rank_helper.scale_and_add(R[j],L[i],e) L[i]=临时Li low_rank_helper.ball_project(L[i],m.B,m.B2) low_rank_helper.ball_project(R[j],m.B,m.B2) m.set_L(i,L[i]) m.set_R(j,R[j]) 返回m
定义initialize_model(): n行=6040 nCols=3952#这些的TODO查询 return LowRankModel(20,nRows,nCols,1.5) 定义stopping_condition(s,loss): 如果不是(s.has_key(“状态”)): s[状态]=0 s[状态]+=1 返回s[状态]>5