加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何评价或排名投票

发布时间:2020-12-13 17:05:59 所属栏目:PHP教程 来源:网络整理
导读:我真的很抱歉,如果我错了我的问题,但我想要一些想法…我想要和排名算法的想法,包括他们提交投票的时间. 解决方法 好问题! 好吧,让我们来吧! 首先,在计算良好评级时你不能做到的一件事是Bayesianaverage 你已经阅读了它,但非常简化它需要注意以下事项: 投
我真的很抱歉,如果我错了我的问题,但我想要一些想法…我想要和排名算法的想法,包括他们提交投票的时间.

解决方法

好问题!

好吧,让我们来吧!

首先,在计算良好评级时你不能做到的一件事是Bayesianaverage

你已经阅读了它,但非常简化它需要注意以下事项:

>投票少的参赛作品不是他们投票的真实意思,而是在整个数据集中具有平均评分的分数.例如,在IMDB上,默认评级为6.4.因此,一张只有2票,每张10星的电影可能仍然有6到7之间的东西.投票越多,它们的共同意义越大,评级就会从默认值中“拉开”. Imdb还实现了他们的电影在列表中显示的最低票数.

我觉得另一件令人困惑的事情是:为什么投票时间很重要?你不是指投票的时间吗?那么在我们的电影中,刚刚发布的电影更重要吗?

但无论如何!在这两种情况下,通常通过应用对数函数来获得良好的结果.

对于我们的电影示例电影相关性可以乘以

1 + 1/SQRT(1 + CURRENT_YEAR - RELEASE_YEAR )

所以1是每部电影获得的套接字评级.
当前年度的电影将提升100%(200%相关性),因为上述情况将恢复正常.去年170%,2岁157%和儿子.

但是1954年或1963年的电影差异并不是那么大.

所以请记住:

>你在计算中使用的一切.它真的是线性的吗?可能会歪曲你的收视率吗?整个数据集中的关系是否合理?

如果你想获得更多的投票,你可以用同样的方式做到这一点,但加权你的投票.如果你想让最近投票的东西“热身”,这也是有道理的……因为它目前很热,并且在你的社区中讨论过.

该计划说这仍然是一项艰苦的工作.很多游戏等

让我给你最后一个想法.

在我工作的公司,我们计算电影的相关性.

我们有一个配置数组,我们在最终相关性中存储了几个因素的“权重”.

它看起来像这样:

$weights = array(
                "year" => 2,// release year
                "rating" =>13,// rating 0-100
                "cover" => 4,// cover available?
                "shortdescription" => 4,// short descr available?
                "trailer" => 3,// trailer available?
                "imdbpr" => 13,// google pagerank of imdb site
        );

然后我们为每个度量计算0到1之间的值.有不同的方法.但是,让我向您展示我们的评级示例(它本身是我们抓取的几个平台的聚合评级,并且具有不同的权重等等)

$yearDiff = $data["year"] - date('Y');
        //year
        if (!$data["year"]){
                $values['year'] = 0;
        } else if($yearDiff==0) {   
                $values['year'] = 1;
        } else if($yearDiff < 3) {
                $values['year'] = 0.8;
        } else if($yearDiff < 10) {   
                $values['year'] = 0.6;
        } else {
                $values['year'] = 1/sqrt(abs($yearDiff));
        }

因此,您看到我们硬编码了一些“年龄间隔”,并仅依赖于sqrt功能,仅适用于较旧的电影.实际上差异很小所以这里的SQRT例子非常差.
但数学函数通常很有用!

例如,您也可以使用像窦曲线等周期函数来计算季节性相关性!例如,你的年份范围从0到1,那么你可以使用窦功能来衡量一年中当前时间的夏季命中/冬季命中/秋季命中!

IMDB pagerank的最后一个例子.它是完全硬编码的,因为只有10个不同的值可能并且它们不以统计同质的方式分布(pagerank 1或2甚至比没有更糟):

if($imdbpr >= 7) { 
                $values['imdbpr'] = 1;
        } else if($imdbpr >= 6) {
                $values['imdbpr'] = 0.9;
        } else if($imdbpr >= 5) {
                $values['imdbpr'] = 0.8;
        } else if($imdbpr >= 4) {
                $values['imdbpr'] = 0.6;
        } else if($imdbpr >= 3) {
                $values['imdbpr'] = 0.5;
        } else if($imdbpr >= 2) {
                $values['imdbpr'] = 0.3;
        } else if($imdbpr >= 1) {
                $values['imdbpr'] = 0.1;
        } else if($imdbpr >= 0) {
                $values['imdbpr'] = 0.0;
        } else {
                $values['imdbpr'] = 0.4; // no pagerank available. probably new
        }

然后我们总结如下:

foreach($values as $field=>$value) {
                $malus += ($value*$weights[$field]) / array_sum($weights);
        }

这可能不是你的问题的确切答案,但更广泛,但我希望我指出你正确的方向,并给你一些你的想法可以拿起的点!

使用您的应用程序获得乐趣和成功!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读