这是关于比较蛋糕的字面意思。我的朋友正在举办一场蛋糕派对,目的是确定曼哈顿最好的杯子。实际上,它比那更雄心勃勃。请继续阅读。

有27家面包店,19人参加(可能有一两次没有出席)。每个面包店将有4个纸杯蛋糕,如果可能的话包括主食 - 香草,巧克力和红色天鹅绒 - 并用4个带有通配口味的四舍五入。对蛋糕进行评级有4个属性:风味,湿润,呈现(漂亮)和一般的善良。人们将为他们采样的每个蛋糕的每个属性提供5分制的评分。最后,每个蛋糕可以切成4或5片。

问题是:对于每种属性,以及每种风味(将“通配符”视为风味),对于面包店提出具有统计意义的统计排名的程序是什么?具体来说,我们想要对面包店进行8次排名:对于每种口味,我们希望按照良好(良好是其中一个属性)对面包店进行排名,并且对于每个属性,我们要对所有口味的面包店进行排名(即,独立于风味) ,即聚合所有口味)。这个大奖将归功于顶级面包店的善良属性。

当然,这可以概括这一点。

这种情况发生在大约12个小时内,所以如果没有人在此期间回答,我会发布我们最终做的答案。

PS:这是关于它的派对后博客文章: http://gracenotesnyc.com/2009/08/05/gracenotes-nycs-cupcake-cagematch-the-sweetest-battle-ever/

有帮助吗?

解决方案

这是我们最终做的事情。我在 http://etherpad.com/sugarorgy (第25版修订版)中制作了一个巨大的表来收集每个人的评分。如果它被我添加此公共链接而被破坏,然后使用以下Perl脚本将数据解析为CSV文件:

#!/usr/bin/env perl
# Grabs the cupcake data from etherpad and parses it into a CSV file.

use LWP::Simple qw(get);

$content = get("http://etherpad.com/ep/pad/export/sugarorgy/latest?format=txt");
$content =~ s/^.*BEGIN_MAGIC\s*//s;
$content =~ s/END_MAGIC.*$//s;
$bakery = "none";
for $line (split('\n', $content)) {
  next if $line =~ /sar kri and deb/;
  if ($line =~ s/bakery\s+(\w+)//) { $bakery = $1; }
  $line =~ s/\([^\)]*\)//g; # strip out stuff in parens.
  $line =~ s/^\s+(\w)(\w)/$1 $2/;
  $line =~ s/\-/\-1/g;
  $line =~ s/^\s+//;
  $line =~ s/\s+$//;
  $line =~ s/\s+/\,/g;
  print "$bakery,$line\n"; 
}

然后我在Mathematica中做了平均和诸如此类的事情:

data = Import["!~/svn/sugar.pl", "CSV"];

(* return a bakery's list of ratings for the given type of cupcake *)
tratings[bak_, t_] := Select[Drop[First@Select[data, 
                        #[[1]]==bak && #[[2]]==t && #[[3]]=="g" &], 3], #!=-1&]

(* return a bakery's list of ratings for the given cupcake attribute *)
aratings[bak_, a_] := Select[Flatten[Drop[#,3]& /@ 
                        Select[data, #[[1]]==bak && #[[3]]==a&]], #!=-1&]

(* overall rating for a bakery *)
oratings[bak_] := Join @@ (tratings[bak, #] & /@ {"V", "C", "R", "W"})

bakeries = Union@data[[All, 1]]

SortBy[{#, oratings@#, Round[Mean@oratings[#], .01]}& /@ bakeries, -#[[3]]&]

结果位于 http://etherpad.com/sugarorgy 的底部。

其他提示

或许阅读投票系统会有所帮助。 PS:不要把维基百科上写的任何东西都当作“好鱼”。我在那里找到了高级主题中的事实错误。

将问题分解为子问题。

蛋糕的价值是多少?基本方法是“得分的平均值”。稍微更健壮的方法可以是“得分的加权平均值”。但是可能会出现并发症......具有3种味道和3种味道的蛋糕可能比具有5种味道和1种味道的蛋糕“更好”,即使味道和味道具有相同的重量(IOW,低分可能具有不成比例)效果)。

制作一些样品蛋糕分数(细节!涵盖正常情景和几个奇怪的情况),并估计你认为合理的“整体”情况。如果你有一个理想的算法,那就是得分。然后,使用该数据对算法进行反向工程。

例如,具有良好4,风味3,呈现1和湿润4的蛋糕可能值得整体4,而具有良好4,风味2,呈现5和潮湿4的蛋糕可能仅为3。

接下来,为面包店做同样的事情。鉴于一组具有一系列分数的蛋糕,适当的评级是多少?然后,弄清楚将为您提供数据的功能。

“善良”排名似乎有点奇怪,因为它似乎是一般评级,所以在那里已经有了整体评分,所以为什么要计算总分?

如果你有时间处理这个问题,我总是建议捕获原始数据,并将其作为进行更详细分析的基础,但我认为这并不重要。

也许这对你来说太笼统了,但是可以使用联合分析来解决这类问题(链接文本)。实现此目的的AR包是bayesm(链接文本)。

如果你可以编写SQL,你可以创建一个小数据库并编写一些查询。应该不那么困难。

e.g。选择总和(得分)/计数(得分)作为finalscore,面包店,从面包店,风味的表中的味道

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top