根据各种标准选择一个项目的理论是什么?

时间:2011-12-14 14:27:44

标签: algorithm selection theory

我需要解决一个问题,即项目A 必须与数千个其他项目进行比较,并找出哪些项目与项目A最相似。

我想根据它们与项目A 的相似程度为每个项目分配权重。各种标准将决定最终的重量。例如,如果item1.someProperty == otherItem.someProperty,那么我将权重增加5,如果item1.anotherProperty == otherItem.anotherProperty,那么我只将权重增加1,因为somePropertyanotherProperty更重要。

我正在描述这一切的原因是,我想知道是否有任何理论可以帮助我创建这个系统。特别是,如何选择每个标准的权重,如何计算项目的最终权重,以及如何构建所有这些标准。

那么有人知道是否有任何理论可以提供帮助?或者也许有更好的方法来做我想做的事情?

3 个答案:

答案 0 :(得分:2)

这至少表面上类似于信息检索(IR)的vector space model(VSM)。这通常基于词袋,但它可以适应其他数据表示。

您描述的权重将与VSM IR中所谓的“字段提升”相对应。

但另见nearest neighbor search

答案 1 :(得分:2)

您可以将自己的属性视为尺寸,并将它们构成距离。如果属性之间存在相关性,您也可以考虑这一点(google for Mahalanobis distance)。

但基本上它归结为

 float distance(a, b) {
    return w1 * ABS(a.x - b.x)
         + w2 * ABS(a.y - b.y)
           ...
    ;
 } 

不是总结条款,你可以总结平方的术语(惩罚大的差异),任何事情都可以。

对于标称数据,您可以使用一些基于熵的差异度量。

答案 2 :(得分:2)

您可以阅读与机器学习相关的任何书籍,例如this one。算法KNN(K near neighour)解决您的问题。 您必须基本上定义问题的距离度量,然后比较这些距离。