我想开发一个可以根据其功能比较两种产品的网站。
我想将功能存储为数据库中的属性。例如,手机是一种产品,因此“屏幕类型”和“屏幕分辨率”是属性,它们的值可以是LED / AMOLED和800x400 / 340x230。
数据库可以是手机/笔记本电脑/电视,但数据库仅适用于一种产品类型。
我想知道是否有任何算法可以根据其属性找出最佳的两种?
任何建议/指示都会更受欢迎。
答案 0 :(得分:3)
这是一种可能的算法,但它不适用于多个用户/客户,除非他们共享相同的偏好(和可支配收入!)。在寻找公寓时,我做了类似的事情:
步骤1 :对于每个要素,将不同的选项映射到数值。我对手机屏幕了解不多,但我们假设您认为AMOLED屏幕比LED屏幕贵20%。已经是数字的值可以离散地映射或使用等式映射。
第2步:为每个功能赋予权重。
第3步:对于每个功能,将权重乘以该值;添加这些,你就得到了每个产品的分数。任何获得最高分的产品都会获胜。
例如,假设每部手机都有以下参数:
将每个参数映射到一个值,这样两倍有价值的东西就是两倍高:
Screen type: LED => 1.0, AMOLED => 1.2
Weight: w => 50/(w+3)
Screen size: (L,W) => sqrt(L^2 + W^2) / 3
Screen DPI: (L,W,X,Y) => sqrt((X*Y)/(L*W)) / 100
Battery life: T => T / 20
你的相对权重是:
Screen type: 3
Weight: 1
Screen size: 4
Screen DPI: 2
Battery life: 2
手机#1的计算得分为800x400px,3x4英寸,LED屏幕,重40g,电池续航时间为48小时,得分为:
3*1.0 + 1*50/(40+3) + 4*sqrt(3^2*4^2)/3 + 2*sqrt(800*400/(3*4))/100 + 2*48/20
= 28.23
手机#2的计算得分为100x100px,2x1.5英寸,AMOLED屏幕,重8g,电池续航时间为200小时,得分为:
3*1.2 + 1*50/(8+3) + 4*sqrt(2^2*1.5^2)/3 + 2*sqrt(100*100/(2*1.5))/100 + 2*200/20
= 33.3
所以第二部手机“最好”。其他参数,尤其是成本,应该包含在分数中。
准确的结果将需要精确映射到数字刻度和准确的相对权重 - 不这是一项简单的任务,即使是自己决定。您可以允许用户设置自己的相对权重,也许......
答案 1 :(得分:0)
如果您想查找每种产品的分数,您需要找到不合适或不适合该类别的产品。 wilson-score intervall会计算出这5%的错误率,您可以对产品进行排序。