精华内容
下载资源
问答
  • Elo-MMR:大型多人比赛的评分系统 此软件包包含用于多人比赛的几种评分系统的实现:全双Glicko,全双BAR,Codeforces,TopCoder,TrueSkill-SPb和新系统Elo-MMR。 评分系统评估参与共同活动的玩家的技能。 Elo-MMR...
  • elo, of评分系统是一种计算玩家相对技能水平的方法 从维基百科:as评分系统是计算两个玩家游戏中的玩家相对技能级别的方法。 它是以它的创造者 Arpad Elo命名的,匈牙利出生的美国物理教授。,系统被发明为一个改进...
  • 《看门狗2》与前代相比,在动作系统、潜入、解谜和远程操控无人机等方面都有了提升,关卡设计也让玩家惊喜。玩家们可以通过多种方式来达成目标,并能够在这些过程中找到非常有趣的互动元素。 但是这款游戏依然存在...

    《看门狗2》与前代相比,在动作系统、潜入、解谜和远程操控无人机等方面都有了提升,关卡设计也让玩家惊喜。玩家们可以通过多种方式来达成目标,并能够在这些过程中找到非常有趣的互动元素。

    但是这款游戏依然存在一些问题:多人方面有优化的问题,且育碧没给出能够优化的具体日期;还有一个问题就是抢劫任务中因为非致命性的武器和警卫的武器相比处于劣势,所以玩家们并没有足够的方法来完成“不杀人过关”。

    对于IGN编辑来说,游戏故事的叙述方式和人物塑造不够好。如果育碧能够解决游戏多人联机的问题的话,那么这将会让这款黑客主题的动作游戏更上一层楼。IGN给出的临时评分为6.5分。

     

    https://my.oschina.net/u/3044705/blog/edit   

    https://my.oschina.net/u/3044705/blog/edit

    转载于:https://my.oschina.net/u/3044705/blog/791351

    展开全文
  • 使用,这也支持多人团队中的单个玩家排名 Heroku快速入门 开始使用Elovation的最快方法是单击下面的“部署到按钮。 Elovation可以在免费套餐上运行,因此您只需要一个Heroku帐户即可开始使用,而无需支付运行费用。...
  • 在线评测系统(e_leaning test system)

    千次阅读 2012-09-12 08:14:41
    项目描述:在线评测系统是一个集多人在线考试系统,可分为本地版 远程网络版实现了从准考证号登入,用户名验证随机从文读 取题目,考试计时,在线评分及答案解析等功能。 责任描述:小组组长独立完成部分项目模块...

     

    开发环境:Windows  

    开发语言及技术:Java  swing

    开发工具:eclipse     

    项目描述:在线评测系统是一个集多人在线考试系统,可分为本地版

    远程网络版实现了从准考证号登入,用户名验证随机从文读

    取题目,考试计时,在线评分及答案解析等功能。

    责任描述:小组组长独立完成部分项目模块,对代码的整合,优化和测试。

    项目体会:    ◆熟练掌握了Java基础,加深了对多线程的理解。

              ◆了解到MVC模式的基本的思路和具体是现实要注意的问题

              ◆对软件开发的流程有更深的理解。

              ◆提高了自身的自学能力。

    登陆界面:

     

    主界面:

    考试界面

     交卷界面:

     

    分数显示界面:

     

     

     

    展开全文
  • 活动现场管理系统 v1.0 是一套活动现场电子网络管理系统,可在线进行 web 应用,无需客户端,可联网操作、可单机操作、可在投影大屏上适时显示,包含了一般活动出席人员签到、竞赛活动选手评分、电子摇号、选举唱票...
  • 业务系统中的状态值设置

    千次阅读 2008-10-29 22:52:00
    在开发系统的过程中我们可能会碰到如下的场景:在某个阶段需要操作的人有很多,我们在进入下一个阶段的...在评分阶段,公司领导(可能有多人)需要分别对每个部门的考核表和每个员工的考核表进行评分,然后将分数通过
    在开发系统的过程中我们可能会碰到如下的场景:
    在某个阶段需要操作的人有很多,我们在进入下一个阶段的时候可能需要查看这些操作者的执行进度。
    以下对一个具体的需求进行一个描述:
    年度考核根据对象的不同分为部门年度考核和员工年度考核。
    其中部门年度考核对应一张部门年度考核表;
    员工年度考核对应一张员工年度考核表。
    在评分阶段,公司领导(可能有多人)需要分别对每个部门的考核表和每个员工的考核表进行评分,然后将分数通过一定的计算公式进行加权求和得到一个最终的考核结果。
    在评分的时候管理员可以查看到部门考核和员工考核的评分进度(即:可以查看几位公司领导针对部门、员工那些已经提交了分数,那么还在进行评分而哪些还没开始评分。)

    针对上面的需求,我原来的做法是针对不部门、员工考核会有针对评分人的评分表,然后评分表中会有一个字段叫做IsSubmit来记录是否对应的评分人已经进行了提交操作。这样做是很符合思维逻辑的,而且似乎也合情合理。但是总觉得欠缺了点什么,我们需要知道一个考核进度就需要知道对应的表名和对应保存状态的字段。似乎每次代码都很相似但是确有不可或缺。

    前阵子和一个做Domino工作流的同事聊天的时候,正好询问了一下工作流中针对流转中文档状态的保存方法。他说他们的状态是和业务数据分离开来,作为单独的数据进行存放的。首先针对文档会有一个状态,这个状态用于标识对应文档所处的节点,比如:是拟定节点、会签节点还是什么等等。然后针对需要多人操作的节点,比如会签节点,这个节点可能需要多位操作者都进行一定的操作才能进入下一个流程节点。那么这个他们是以任务的方式放在一个统一的任务箱中间。这样每个人登录系统以后就可以直接从任务箱中间去查看是否存在需要进行操作的任务了,而不需要查询每个文档来进行判断。虽然从具体的环境上存在差别,但是从思路上确实可以借鉴的,那就是“状态需要和业务数据相分离。

    再回到我们前面提到的绩效考核的例子,我们将所有评分人是否提交的状态整合到一个统一的表格中(无论是针对部门的评分还是员工的评分都整合到这个表格中)表格的结构可以是:
    操作人标识(PersonCode)、操作对象标识、考核阶段标识、状态。
    这样只要设计到状态判断我都可以通过统一的方法到这个表格中进行查找,需要变化的只是参数的具体数值。
    如果要进行某个考核阶段的进度统计也可以方便的通过这个表和相关表的外联实现对应的功能。

    这个是最近的一个心得,希望对有类似问题的朋友有帮助。也希望起到抛砖引玉的作用,大家有想法或者建议欢迎讨论。
    展开全文
  • 矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需要构造cost ...

    矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需要构造cost function来将矩阵分解问题转化为优化问题,根据要考虑的因素为优化问题添加constraints,然后通过迭代的方法进行矩阵分解,原来评分矩阵中的missing vlaue可以通过分解后得到的矩阵求的。

    本文将简单介绍下最近学习到的矩阵分解方法。

    (1)PureSvd

    怎么评价这种方法呢?开始觉得这种方法很神奇很数学,而且在实际使用的时候也非常好用。

    但最近读了Yehuda大神的paper之后,觉得这种方法比较猥琐。

    其实,矩阵分解的核心是将一个非常稀疏的评分矩阵分解为两个矩阵,一个表示user的特性,一个表示item的特性,将两个矩阵中各取一行和一列向量做内积就可以得到对应评分。

    那么如何将一个矩阵分解为两个矩阵就是唯一的问题了。

    说到这里大家就可能想起了在线代和数值分析中学到的各种矩阵分解方法,QR,Jordan,三角分解,SVD。。。

    这里说说svd分解。

    svd是将一个任意实矩阵分解为三个矩阵U,S,V,其中,U,V是两个正交矩阵,称为左右奇异矩阵,S是个对角阵,称为奇异值矩阵。

    其实svd分解的问题可以化解为特征值分解的问题。

    评分矩阵A(m*n)=U(m*k)*S(k*k)*V'(k*n)

    令B(m*m)=A(m*n)*A'(n*m)

    B矩阵就是一个方阵,可以利用各种简单的方法将B进行特征值分解:

    Bv=av,

    v是方阵B的特征向量,a是特征向量v对应的特征值。

    所以奇异值s=sqrt(a),

    左奇异向量u=A*v/s

    同样的方法可以求得右奇异向量。

    这样我们就得到了svd分解后的三个矩阵。(你可以自己写个c程序计算,当然也可以用matlab算算得到)

    分解后的三个矩阵都有着各自的意义,

    U:每一行表示一个user的特征。

    V:每一列表示一个item的特征。

    S:表示对应的user和item的相关性。

    所以可以考虑用U和V将S吸收进来,形成两个矩阵分别表示user的矩阵和item的矩阵。

    得到这个以后后面的事情就好办了。

    为什么说这个方法猥琐呢?

    因为我觉得,这种方法有着矩阵分解算法的表,却可以非常简单地完成矩阵的分解,然后填充稀疏的评分矩阵。

    但它考虑的因素太少了,不过对于简单的推荐系统,这种方法还是非常有意义的,容易实现,而且结果也不会太差。

    (2)Latent Factor Model

    这是真正的矩阵分解算法,经过实践检验,具有非常高的准确性和易扩展性。

    正如上面提到的,实现推荐系统结果的目标是将那个稀疏的评分矩阵分解成两个矩阵,一个表示user的feature,一个表示item的feature,然后做内积得到预测。

    当然要实现满足一定约束条件的矩阵分解,可不像上面的PureSVD那样容易,需要构造一个优化问题,用一些复杂的算法求解优化问题。而这些优化问题往往是NP问题,只有局部最优解。

    首先构造一个优化目标函数,

    考虑到最后的评价指标是预测分值和实际分值之间的误差的平方(RMSE),所以构造的目标函数也是误差的平方的函数。

    为什么这样的算法可以得到更优的结果呢?因为算法可以很容易地扩展很多的feature进来,更加出色地考虑了多种影响推荐效果的实实在在的因素。

     

    • Biases
    因为有的用户总是会打出比别人高的分,或者说有的用户他的评价尺度比较宽松;同样有的item总是被打高分。这是一个普遍存在的问题,所以在构造目标函数的时候需要增加几项:所有评分的平均值miu,user的偏见分数bu,item的偏见分数bi。
    比如:求用户x对电影y的打分,
    所有评分电影的评分的平均分是miu=3.5,
    电影y比所有评分电影平均分高bi=0.5
    但是用户x是个比较严格的用户,评分总是相对偏低,所以bu=-0.3
    所以用户x对电影y的打分为3.7
    • Implicit feedback
    用户在使用web应用的时候,会产生大量的行为,充分挖掘这部分的价值,将会很好地提升推荐的效果。
    利用用户的隐式反馈,相当于充分的利用了评分矩阵中的missing value的价值,用户在页面的停留时间,检索,浏览,点击等等各种行为都可以建模,内含到目标函数中。
    这里,可以将简单地用一个Boolean来描述一种行为有还是没有。
    不过在使用的时候,需要进行归一化处理。
    • User-associated attributes
    基于用户的社会化属性进行推荐也是一种很基本的推荐,当然也可以考虑到目标函数中。
    • Temporal dynamics
    用户的兴趣包括长期和短期,动态地考虑一段时间内用户的兴趣是很有必要的。
    上面的几个因素中随着时间变化的有,user的bias项bu=bu(t),item的bias项bi=bi(t),以及user的factor向量pu=pu(t),这里可以忽略item的factor向量的变化,因为item是比较稳定的。
    • Confidence level
    因为在处理上述的因素的时候,很多都是比较主观的,所以需要给每个因素添加一个置信权重,以平衡整个结果。
     
    通过构造出这个目标函数,然后添加相应的约束条件,接下来的问题就是求解这个优化问题。
    通常比较好的方法是Stochastic gradient desent。
     
    PS:这种方法是现在学术界的主流方法,大家可以参阅Yehuda的神作(http://research.yahoo.com/Yehuda_Koren)以及上海交大在今年kddcup获奖方法的paper以及他们的开源系统(http://apex.sjtu.edu.cn/apex_wiki/svdfeature

     

     

     

    (3)NMF(非负矩阵分解)

    很多人用这种方法是因为他们觉得只有一个非负的值对于实际的例子才会有意义。

    考虑到svd或者latent factor model会得到负的值,所以这种方法的物理意义比较明确。

    同样的道理,NMF也是将评分矩阵的转置矩阵分解成两个矩阵。

    不同的是这两个矩阵有着和上面的矩阵不同的物理意义。

    其中一个是基矩阵W,另一个是投影矩阵H,即R'(n*m)=W(n*r)*H(r*m)

    W:每一列包含一个基向量,这组基向量构成一个r维的空间。

    H:每一列则近似为原始数据对应的列向量在该r维空间的投影。

    做这个分解的方法也是构造一个目标函数和一些约束条件,然后用梯度下降的算法来计算得到一个局部最优解。

    这种方法的思路大概是这样的:

     

    • 将评分矩阵转置然后分解成两个矩阵W和H。
    • 根据基矩阵W,可以计算得到目标用户评分向量a对基矩阵W的投影向量h。
    • 计算投影向量h与投影矩阵H各行之间的欧式距离,将其中距离最小的前k个用户组成目标用户a的最近邻集合。
    • 然后用皮尔逊相关法将最近邻集合中的数据进行加权计算,然后排序进行推荐。
    可以看出来,这种方法的思路和上面的两种还是很不相同的,主要还是在计算目标用户的最近邻集合,主要思想还是knn,只是在中间用了矩阵分解的方法降维降低了计算的时间复杂度。
     
    矩阵分解在学习的时候感觉既没用又麻烦,尤其是线代里面做矩阵的分解计算,无聊的很。
    现在看来,矩阵分解非常有意义。
     
     
     
     
     
     
    续:

    最近研究了下Yehuda大神的paper,学习了下矩阵分解方法在推荐系统中如何用。

    本文中提到的矩阵分解是一般的分解,即R=M*N的形式。

    1、矩阵分解方法的来源

    CF里的矩阵分解思想是来自于IR领域的Latent Semantic Analysis(LSA)。google黑板报的《数学之美》中很清楚地讲了SVD分解在IR中的应用。(http://www.google.com.hk/ggblog/googlechinablog/2006/12/blog-post_8935.html

    2、矩阵分解的优劣

    优点是:

     

    • 比较容易编程实现
    • 比较低的时间和空间复杂度
    • 预测的精度比较高
    • 非常好的扩展性
    缺点是:推荐的结果不具有很好的可解释性。因为把ratings matrix分解成user-factor matrix和item-factor matrix,这里的factor很难用实际意义的概念来解释。不过,矩阵分解的过程相当于一个软聚类的过程,得到的每一个factor相当于每一个聚类后的分组,只是我们没有一个通用的方法来为这些分组命名。
    但是在实际的应用中,我们可以提取这些分组中最突出的特点来给这些factor命名。比如,拿新闻资讯类的推荐系统来说,做好分解之后,每个factor都可以看成是一类资讯,可以从这些资讯中提取一些特征来给这个factor命名。
     
    3、矩阵分解的模型(Latent Factor Model)
    矩阵分解的思路是把评分矩阵通过分解,用一个低秩的矩阵来逼近原来的评分矩阵,逼近的目标就是让预测的矩阵和原来的矩阵之间的误差平方最小。(矩阵分解一般不用数学上直接分解的办法,尽管分解出来的精度很高,但是效率实在太低!矩阵分解往往会转化为一个优化问题,通过迭代求局部最优解。)
    但是有个问题是,原来的评分矩阵的稀疏度太大,分解很容易产生overfitting(过度拟合,意思就是为了迁就一些错误的偏僻的值导致整个模型错误)的问题。所以现在的方法是在目标函数中增加一项regularization(正则化),来避免overfitting问题。
    所以一般的矩阵分解的目标函数(或者称为loss function)是:
    前一项是预测后的矩阵和现有的评分矩阵的误差,这里计算只针对评分矩阵中已经评分的项。
    后一项就是正则化项,用来解决过度拟合的问题。
    这个优化问题求解的就是分解之后的user-factor,item-factor矩阵的factor向量。(qi是item的factor向量,pu是user的factor向量)
    求解这个优化问题常用两种方法,一种是alternative least squares(交叉最小二乘法),另一种是stochastic gradient descent(随机梯度下降法)。
    前一种方法会涉及到矩阵的求逆问题,所以计算起来会比较麻烦。
    后一种方法,只需要求梯度,就可以迭代计算了,因此会简单很多。
    迭代方程如下:
    其中,gamma是学习速率,lamda是正则化系数,是两个可选的参数,而且对于最后的结果非常重要。
    这里,gamma的大小不仅会影响到训练时间,还会影响到结果的收敛性。gamma太大的话会导致结果发散,一般都会把gamma取得很小,不同的数据集取得值不同,但大概是0.001这个量级。这样的话训练的时间会长一些,但结果会比较好。
    lamda的值一般也比较小,大概取0.01这个量级就好了。
    迭代开始前,需要对user和item的特征向量赋初值,这个初值很重要,会严重地影响到计算速度。一般的做法是在所有已评分的平均分附近产生一些随机数作为初值。
    迭代结束的条件一般是loss function开始增加了,或者loss function的值小于了某一个阈值。
    当我们拿到计算出来的user,item的factor向量后,最后预测结果时有两种选择,一种是保留计算出来的小数rating,一种是将这些小数rating四舍五入并裁减到[1,5]这个区间内。
    对于实际的推荐系统来说,结果是小数还是整数,没有所谓,因为我们并不会把预测的分数给用户看,而只是返回一个推荐列表。
    但对于线下训练参数或者做论文的童鞋来说,不同的处理方法得到的RMSE或者MAE的值可不相同。
    我用这个的算法对movielens 100k的小数据做了测试,用很短的时间就可以计算好,不过那些参数的选择需要不断地用RMSE 来计算得出。在其他的信息都没有利用的情况下,也可以得到0.90这个量级的RMSE。
     
    4、增加一些扩展项
    上面的模型中只简单的用了已知的评分数据,很多的信息都没有考虑进来。
    (1)增加biases信息
    因为有的user总是趋向于打一个很高的分,而有的user比较严格,总是打一个很低的分,有的item总是被打一个很高的分,而有的item总是被低估。所以我们需要给模型增加biases项,loss function如下:
    迭代方程变成了:
    同样的方法,只是多了对bu和bi的赋初值。
    同样,我用movielens的100k数据计算,得到的RMSE值也在0.90这个量级,但整体要比没有考虑biases结果好。
    (2)增加implicit feedback信息
    评分是一个显性的反馈方式,然而在很多时候显性的反馈很少很少,而user的很多行为都可以反映出他们对item的态度,所以利用implicit feedback是非常必要的。给模型增加implicit feedback项,预测模型如下:
    迭代方程如下:
    implicit feedback信息对于商城来说,可能是购买,浏览等等行为,对于Netflix这样的网站来说,可能是浏览,租赁等等。
     
    (3)考虑temporal信息
    因为用户的兴趣或者对某一个item的态度是和时间有关的,比如说,可能我今年不太喜欢西服这个东西,因为我用不着,所以我不会购买,但可能若干年后我不得不穿西服的时候,我一定会去买,也就是说我给推荐系统留下我喜欢西服这个东西的印象。(即使我真的不喜欢西服。)
    动态地考虑user的兴趣或者需求是非常必要的。
     
    矩阵分解是当下非常流行的算法,可以考虑将这种算法和传统的KNN结合在一起来做推荐,相信效果会很不错。

    转载于:https://www.cnblogs.com/wn19910213/p/3614658.html

    展开全文
  • 矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需要构造cost ...
  • 矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需要构造cost ...
  • 矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需要构造cost ...
  • python进阶练习题:全明星挑战赛的代码#23...你已经发现了该评分系统的配方! 创建一个名为得分()函数,它播放器对象的数组,并返回玩家名称的数组,以降序得分次序(最高得分为索引0,第二最高是索引1等). 每个玩家的得分...
  • 动态评分系统。 多种播放模式可供选择。 如何安装 如果您想自己安装和托管TriviaBot,可以找到如何进行安装。 自托管机器人可以使用自定义问题的支持。 指令 trivia play <category> -启动琐事游戏的命令。 ...
  • 麦客疯 v7.0.0304.zip

    2019-07-08 03:06:48
    “竞技评分”——独一无二的语音评分系统,给传统的卡拉OK带来竞技,使每个网友在麦客网的音乐社区内都有自己的地位  “在线包房”——网上KTV,与来自五湖四海的朋友互动演唱,足不出户就能享受卡拉0K聚会的乐趣...
  • XMage —魔术,另一个游戏引擎 XMage允许您与一个或多个在线... 球员评分系统(Glicko); 支持特殊格式,例如指挥官(最多10个玩家),破誓者,多维数据集,小领导者,超标准,历史标准等; 支持单场比赛或锦标
  • Group By ,你会用么

    千次阅读 热门讨论 2013-04-01 15:48:47
    学生评教系统做完了,在测试的时候,遇到这样一个问题,多人对同一个教师评分后,分数统计完毕会出现成绩统计混乱的问题,后来找到了问题的症结:原来是Group By 在作怪。下面简单总结下Group By,以便今后少犯错误...
  • 伴随着电商行业的火爆流行,电商成为了越来越多人创业的首选目标,越来越多的人开起了淘宝网店,一边开店一边学习如何做淘宝推广,做的一切举动无非就是希望自己的店铺能够有个好的排名,但是淘宝展现的位置是有限的...
  • 悟空HRM v0.1.zip

    2019-07-16 05:36:56
    悟空HRM系统是一款开源免费的通用人力资源管理软件,采用先进的LAMP架构,具有良好的开放性、可扩展性、安全性和透明性;...通过启用考核模板并设置评分对象和考核对象可以完成多人同时评分,准确把握员工各种能力。

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

多人评分系统