我正在尝试计算由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会给出令人满意的结果吗?还是我应该考虑其他算法?
相似性度量是一种启发式度量,用于捕获两行数据之间的关系,这是关于数据语义和训练目的的。我们不知道你的数据;我们不知道你的用法。当我们不知道我们正在解决什么问题时,建议度量来解决问题是不负责任的。
你必须向你在镜子里找到的人提出这个问题。你给了我们三个特征,却不知道它们是什么意思,也不知道它们之间的关系。你需要量化…
-
特征内的相对距离:在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);实际的差值可以是一个比值,平方差,等等。同样,这取决于这些标签背后的语义。
-
特征之间的相对权重:不同列中的差异如何组合以提供相似性?例如,d([A, 10], [B, 20])与d([A, 10], [C, 30])相比如何?左边一栏有两个字母,右边一栏有两个10的步骤。如何d([10],[20],)和d ([10], [10] B) ?距离是线性的,还是随着字母表的顺序或更高的数字而变化?