计算n个实体之间的相似度



我正在尝试计算由entity_id, type_of_order, total_value描述的n个实体之间的相似性。

数据的示例可能如下所示:

NR  entity_id type_of_order total_value
 1    1           A           10
 2    1           B           90
 3    1           C           70
 4    2           B           20
 5    2           C           40
 6    3           A           10
 7    3           B           50
 8    3           C           20
 9    4           B           50
 10   4           C           80

我的问题是,衡量entity_id 1和2之间的相似性的好方法是什么,例如,关于该类型订单的type_of_order和total_value。

一个简单的KNN会给出令人满意的结果吗?还是我应该考虑其他算法?

相似性度量是一种启发式度量,用于捕获两行数据之间的关系,这是关于数据语义和训练目的的。我们不知道你的数据;我们不知道你的用法。当我们不知道我们正在解决什么问题时,建议度量来解决问题是不负责任的。

你必须向你在镜子里找到的人提出这个问题。你给了我们三个特征,却不知道它们是什么意思,也不知道它们之间的关系。你需要量化…

  1. 特征内的相对距离:在type_of_order下,任意两个测量值之间的关系(距离)是什么?如果我们任意赋值d(A, B) = 1,那么d(B, C)是什么?我们没有信息来帮助你构建这个。更进一步,如果我们给出某个值c,那么d(A, c)是什么?在各种流行的度量中,它可以是1+c, |1-c|,所有距离都可以是1,或者可能是其他东西——在某些应用中甚至大于1+c。

    即使在最后一列,我们也不能假设d(10,20) = d(40,50);实际的差值可以是一个比值,平方差,等等。同样,这取决于这些标签背后的语义。

  2. 特征之间的相对权重:不同列中的差异如何组合以提供相似性?例如,d([A, 10], [B, 20])与d([A, 10], [C, 30])相比如何?左边一栏有两个字母,右边一栏有两个10的步骤。如何d([10],[20],)和d ([10], [10] B) ?距离是线性的,还是随着字母表的顺序或更高的数字而变化?

最新更新