【问题标题】:How to define a custom similarity measure如何定义自定义相似度度量
【发布时间】:2015-12-27 04:25:20
【问题描述】:

我需要一些帮助来定义自定义相似度度量。

我有一个数据集,其元素由 4 个属性定义。 例如,考虑以下两项:

Element 1:

A1: "R1", "R3", "R4", "R7"
A2: "H1"
A3  "F1", "F2"
A4  "aaa" "bbb"


Element 2:

A1: "R1", "R2"
A2: "H1"
A3  "F1", "F2"
A4  "aaa" "bbb" "ccc" "ddd" "eee" "fff"

我必须实现一个满足以下条件的相似性度量:

1 - 如果A2值相同,则两个元素必须属于同一个簇

2 - 如果两个元素在 A4 上至少有一个共同值,则 who 元素必须属于同一个簇。

我需要使用一种加权 Jaccard 度量。如果 A2 和 A4 满足条件 1 和 2,则定义一个相似性度量来计算每个属性的 Jaccard 距离,然后添加一种高权重,在数学上是否正确?

如果是这样,如何将相似度矩阵转换为距离矩阵?

【问题讨论】:

  • Is it mathematically correct to define ... 这当然不是编程问题。转换必须满足几件事才能成为指标。你可以查一下,然后你必须检查......这里可能跑题了。

标签: machine-learning cluster-analysis data-mining similarity


【解决方案1】:

(1) 距离 = 1 - 相似度。这是一个共同的特点。

(2) 对属性的距离求和是有效的,尽管您可能希望将其缩放回 [0, 1] 范围。

(3) 根据您所描述的,高权重是不正确的。如果 A2 或 A4 值显示匹配,只需将距离设置为 0。聚类是要求,而不仅仅是强烈建议。你的距离函数是否有其他语义,你不想走这条路?

仅供参考,作为拓扑度量的距离函数 D 的基础是:

D(a, a) = 0
D(a,b) = D(b,a)
D(a,b) + D(b,c) >= D(a,c)

【讨论】:

  • 感谢 Prune 提供的所有好的提示 :) 也许最好将聚类条件视为一个非常有力的建议。如果我将距离设置为 0,我会错过关于所有其他属性的距离信息。即使这些属性的权重很小,对我来说保存这些差异也很重要。将其他属性距离标准化为 [0 - 0.5] 的范围并为 A2 提供 0.25 并为 A4 提供 0.25 怎么样?我知道如果只匹配 A2 和 A4 会导致一些问题,但根据我正在使用的元素的性质,这是一种非常罕见的情况。
  • 建议的指标通常仍然不起作用;您的要求坚持 A2 或 A4 匹配 必须 优先于任何其他因素,结合起来。您可以给它们每个 0.34 并为其余部分保留 0.32,将聚类算法倾斜为 0.34 或更低的阈值。这里的一个问题是你试图用一个梯度度量来处理三个不相交的要求——两个布尔值和一个梯度。您是否也在编写自己的聚类算法?您还可以使用一对来处理布尔要求,例如 (True, 0.28)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 2014-09-21
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 2014-07-03
  • 2015-05-17
相关资源
最近更新 更多