Java 用户评价可信度计算

  • 用户评价可信度算法
    • 主观评价波动
    • 主观评价与客观评价的相似度
    • 主观评价与主流评价的相似度

用户评价可信度算法

每个用户在使用完服务后都会给出一个评价,所有用户对该服务的主观评价值聚合成对该服务的主观信誉度评价。显然,并不是所有用户的评价都会是公正、无偏见的,同时由于用户专业背景和服务使用环境的不同,也会导致评价出现不合理的偏差,这就需要对用户评价的可信度进行评估。通常,影响用户评价可信度(user credi-bility,UC)的因素主要有用户评价的波动性(sub-jective rating similarity,SMS)以及用户主观评价与用户主流评价值的相似度(subjective and majority rating similarity,SOS)。它们之间的关系式如下式所示。
uc=1/(α∗srf+β∗sos+ε∗s,sms)uc =1/(α*srf+β*sos+ε*s,sms) uc=1/(α∗srf+β∗sos+ε∗s,sms)
其中:
0&lt;(α,β,ε)&lt;1,α+β+ε=10&lt;(α,β,ε)&lt;1,α+β+ε=1 0<(α,β,ε)<1,α+β+ε=1
根据实际研究的经验,以及对项目的研究,本人选择:
α=0.3,β=0.4,ε=0.3α=0.3,β=0.4,ε=0.3 α=0.3,β=0.4,ε=0.3

主观评价波动

在不同环境或不同时间,同一用户对同一服务多次使用效果的评价会出现波动。但是这个波动应该在一个合理的范围内,如果评价波动过大,往往是由于评价人员给出的评价值缺乏理性判断或是不具备相应的专业知识。因此评价的波动(离散程度)可以从一个方面反映用户评价的可信度。这里采用用户主观评价序列的均方差来说明用户评价的离散程度,如下式所示。
srf=(∑t=1w(srt−srˉ)2/cw)srf=\sqrt{(\sum_{t=1}^{w}}(sr_{t}-\bar{sr})^2/cw) srf=(t=1∑w​​(srt​−srˉ)2/cw)
其中srt为规范化处理的用户主观评价序列值且srt属于[0.1,1];sr的平均值为该评价序列均值,cw为用户评价信度窗。srf越大,说明该用户关于该服务的主观评价值的离散程度越大,评价的跳跃性大,从而使用户评价的可以新都越小;反之,srf越小,则说明用户评价比较集中的分布在sr的平均值周围,评价值比较平稳,用户评价值理性可信。

主观评价与客观评价的相似度

主观评价与客观评价从两个角度衡量了服务的性能,这两组评价值之间应该呈现出一致性或较高的相似性。因为客观评价是根据用户需求和实际检测值计算出来的,具有较高参考价值,可以作为衡量主观评价是否可信的参照点。本人把同一评价信度窗内的用户主观评价序列sr=(sr1,sr2,----,srn)和客观评价序列or=(or1,or2,-----,orn)看作n维欧式空间的两个点,这样评价序列相似度就转换成n维欧式空间中两个点之间的距离。距离越小,说明相似度越大,主观评价的可信度就越高。利用欧氏距离来计算用户主观评价与客观评价的相似度sos,如下式所示:
sos=(sr1−or1)+(sr2−or2)+……+(srn−orn)2sos=\sqrt{(sr_1-or_1)+(sr_2-or_2)+……+(sr_n-or_n)^2} sos=(sr1​−or1​)+(sr2​−or2​)+……+(srn​−orn​)2​
其中:sr和or分别为一个评价信度窗内主、客观评价序列向量
0≦sri∈sr≦1,0≦ori≦10\leqq{sr_i}\in{sr}\leqq1,0\leqq{or_i}\leqq1 0≦sri​∈sr≦1,0≦ori​≦1

主观评价与主流评价的相似度

通常假定在一个评价体系中大部分用户的主观评价信息是理性可信的。基于此,本人把一个时间窗w内的评价信息划分成若干簇,然后选取最大簇的型心作为时间窗w内的用户主流评价值,计算方法如下式所示:
smr=cnter(max(δ(srk)))smr=cnter(max(δ(sr_k))) smr=cnter(max(δ(srk​)))
通过该式可得到用户主观评价聚类中最大簇的形心smr,即时间窗w内的主流评价向量,然后以smr为参照,通过用户主观评价向量sr与smr的欧式距离来计算sms。sms的值表示在该时间窗内特定用户的主观评价与所有用户主流评价的相似度,该值越小说明该特定用户的评价越接近大多数用户的评价,因此可信度越高;反之,则说明该特定用户的主观评价值与主流的评价值偏离较大,离散度较高,导致其评价可信度降低。
其中形心公式如下:
Cx=16A∑i=0n−1(xi+xi+1)(xiyi+1−xi+1yi)C_x=\frac{1}{6A}\sum_{i=0}^{n-1}(x_i+x_{i+1})(x_iy_{i+1}-x_{i+1}y_i) Cx​=6A1​i=0∑n−1​(xi​+xi+1​)(xi​yi+1​−xi+1​yi​)
Cy=16A∑i=0n=1(yi+yi+1(xiyi+1−xi+1yi))C_y=\frac{1}{6A}\sum_{i=0}^{n=1}(y_i+y_{i+1}(x_iy_{i+1}-x_{i+1}y_i)) Cy​=6A1​i=0∑n=1​(yi​+yi+1​(xi​yi+1​−xi+1​yi​))
A=12∑i=0n−1(xiyi+1−xi+1yi)A=\frac{1}{2}\sum_{i=0}^{n-1}(x_iy_{i+1}-x_{i+1}y_i) A=21​i=0∑n−1​(xi​yi+1​−xi+1​yi​)
同时需要注意首尾点必须相同,这样才代表闭合。
而用户的主观评价向量sr,我们可以把用户评价的分数以及评价该分数的次数进行统计,之后就可以获取sr的形心,再根据这个值我们就可以求出sms。

Java 用户评价可信度计算相关推荐

  1. Java基础-时间复杂度计算方式

    Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...

  2. java精确除法计算,四舍五入 Java问题通用解决代码

    java精确除法计算,四舍五入 Java问题通用解决代码 参考文章: (1)java精确除法计算,四舍五入 Java问题通用解决代码 (2)https://www.cnblogs.com/svenne ...

  3. Java判断工作日计算,计算随意2个日期内的工作日

    当前位置:我的异常网» Java Web开发 » 计算随意2个日期内的工作日 计算随意2个日期内的工作日 www.myexceptions.net  网友分享于:2013-08-17  浏览:51次 ...

  4. 【Java】Float计算不准确

    大家可能都遇到过,float在计算某些值时,会有不准确的情况. 比如如下情况: > 计算不准确 package com.nicchagil.study.java.demo.No10float计算 ...

  5. Java练习 SDUT-1586_计算组合数

    计算组合数 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 计算组合数.C(n,m),表示从n个数中选择m个的组合数. ...

  6. java 多线程统计质数,Java 七 多线程计算某个范围内的质数

    Java 7 多线程计算某个范围内的质数 不多说了,看代码 通用类 package java7.concurrency.math; /** * This class generates prime n ...

  7. java指定日期计算一年内第几天和给出一年内第几天算出指定日期

    java指定日期计算一年内第几天和给出一年内第几天算出指定日期 1.计算一年内第几天,部分参考的是https://blog.csdn.net/xinpengfei521/article/details ...

  8. Java实现标题相似度计算,文本内容相似度匹配,Java通过SimHash计算标题文本内容相似度

     目录 一.前言 二.关于SimHash 补充知识 一).什么是海明距离 二).海明距离的应用 三).什么是编辑距离 三.SimHash算法的几何意义和原理 一).SimHash算法的几何意义 二). ...

  9. java 计算星座算法,java 依据生日计算星座

    当前位置:我的异常网» 编程 » java 依据生日计算星座 java 依据生日计算星座 www.myexceptions.net  网友分享于:2013-09-06  浏览:344次 java 根据 ...

最新文章

  1. ThinkPHP 详细介绍
  2. JavaScript闭包如何工作?
  3. ksql 数量大于2_A股史上唯一能暴涨200%的买卖铁则:内盘大于外盘股价必跌,外盘大于内盘股价必涨,堪称绝技...
  4. 撸过一万行代码,你看过这篇文章吗?
  5. Linux基本命令 -- grep参数说明及常用用法
  6. P1273 有线电视网 树形dp
  7. 配置Hadoop开发环境(Eclipse)
  8. 基于matlab的CIC滤波器仿真
  9. java 动态统计报表_java统计图表FineReport制作动态图表
  10. 数字信号处理digital signal processing经典书籍
  11. SQL员工基本工资表题目及答案
  12. 服务器怎么向指定客户端发送信息,WebSocket 如何实现服务端向客户端发送消息?...
  13. 我们是怎么一步步陷入贫穷的
  14. 多通道国产源表之VCSEL老化测试
  15. 万能和弦与和弦走向浅析
  16. ASP错误代码中文说明大全:
  17. BZOJ 2152:聪聪可可
  18. win7 ie11 无法卸载
  19. 学习:深度学习公开课
  20. 容联云携手中国信通院,开启办公即时通信软件系列标准研制

热门文章

  1. css3 制作圆柱体
  2. RTMP协议推流,助力视频数据轻松上云
  3. uni-app小程序onShow执行两次;微信小程序onShow重复执行原因;导航栏tabBar页的onLoad函数不执行;App.vue页的onShow执行原因;onShow莫名其妙执行
  4. 一次nginx代理前端报rewrite or internal redirection cycle while internally redirecting to “index.html“ 记录
  5. 利用metaphlan2结果计算alpha多样性
  6. 控制学习笔记(1)——反步控制法
  7. 【论文】军事理论课程论文
  8. 【项目实战】java实现向日葵远程控制功能
  9. Python爬虫抓取b站排行榜
  10. Unity学习笔记:Unity 3D 飞机大战