Algorithm 查找集合中最明显的元素

Algorithm 查找集合中最明显的元素,algorithm,language-agnostic,Algorithm,Language Agnostic,假设我们有一家香水店,有100种不同的香水 假设10000名顾客以每款香水一至五星级的价格购买 假设问题是:“如何最好地构建一包5种香水,使95%的客户对其中至少一种香水给予4星级以上的评价” 如何在算法上做到这一点 注意:我可以看出,即使是问题的形式也不正确;甚至不能保证这样的建筑存在。这两个参数之间存在权衡 注:另外,(这使得香水的类比变得有点人为),我们得到一个好匹配还是三个好匹配并不重要。所以{4.3,0,0,0,0}等于{4.3,4.2,4.2,4.2,4.2}——在这两种情况下,分数

假设我们有一家香水店,有100种不同的香水

假设10000名顾客以每款香水一至五星级的价格购买

假设问题是:“如何最好地构建一包5种香水,使95%的客户对其中至少一种香水给予4星级以上的评价”

如何在算法上做到这一点

注意:我可以看出,即使是问题的形式也不正确;甚至不能保证这样的建筑存在。这两个参数之间存在权衡

注:另外,(这使得香水的类比变得有点人为),我们得到一个好匹配还是三个好匹配并不重要。所以{4.3,0,0,0,0}等于{4.3,4.2,4.2,4.2,4.2}——在这两种情况下,分数都是4.3

假设为了论证0-19香水是甜的,20-39香水是酸的,等等(模拟盐、苦、联伊援助团)

所以在0-19之间会有非常高的互相关

如果你在空间中用100个点来建模,那么0-19个点会相互吸引,形成一个簇

同样地,对于其他四种口味,你也会得到另外四种口味

因此,我们仅从一个指标中分离出5种不同的口味

但这项技术是否扩展了

π


PS仅仅给出相关技术的名称将非常有用,因为这将允许我在谷歌上搜索更多信息。因此,任何用行业公认的术语重述这个问题的答案都是有用的

此算法应能找到问题的解决方案:

  • 根据评分为4+的客户数量订购香水
  • 从列表中选择第一款尚未协调的香水
  • 删除现在满意的客户的评级
  • 对包装中的香水2-5重复此过程

  • 必要时回溯以获得满足条件的选择

    真正的问题是NP难问题,但您可以使用贪婪算法:

  • 让C成为您客户的全部
  • 为每种香水分配一个覆盖范围,覆盖范围由C中为每种香水提供4+的客户数决定
  • 按覆盖率递减排序。如果C为空,且所有保险范围均为零,则随机选择一款香水(实际上,如果C不为零,但小于原款的5%,则满足您的要求)
  • 从C中删除所有对刚刚选择的香水感到满意的客户(不是评级)
  • 从2开始重复,除非你已经有5种香水
  • 这将自动处理味觉聚类:对甜味香水给予高分的客户将被投票最多的甜味香水所满足,然后他将被从C中剔除,所有其他评分将被忽略,算法将继续满足其他客户

    此外,你应该注意到,即使你不能用五种香水满足要求(95%,4+),香水相似性将确保该算法最大化覆盖范围和标记-因此你可能最终得到(93%,3.9)

    另外,假设10%的用户没有给出任何高于3的分数。你不可能满足95%的顾客,因为10%的顾客最多3%是满意的。您可能希望与实际上至少给出一个4+评级的客户一起构建C


    或者,你可以改变算法,而不是你问题中的算法,决定使用背包:你想获得最高的累积评分。这也提高了顾客对整体包装满意的可能性(事实上,他几乎肯定非常喜欢一款香水,但他可能非常不喜欢其他四款)。

    选择一款4-5星级香水,选择4款1-3星级香水,重复。还是我遗漏了什么?看起来像。当k=5时,顾客是“元素”,对某些香水给予4+星级评级的顾客构成“集合”。你要求的是一个算法,但你没有尝试自己创建一个算法。这不比“请发送代码”好多少。