我有多少个字符串(n个字符串),我正在计算字符串之间的编辑距离,我先采取一种方式,然后将其与(n-1)个剩余字符串进行比较,第二个并将其与(n-)进行比较2)剩下的,...,比较,直到我用完字符串。
为什么平均编辑距离应计算为所有字符串之间所有编辑距离之和除以比较平方数。这个平方让我感到困惑。
谢谢, Jannine
答案 0 :(得分:1)
我假设你有一个答案似乎带有一个平方因子 - 我将把它当作n ^ 2,其中n是字符串的数量(不是不同比较的数量,即n *(n) -1)/ 2,如+ flaschenpost指向)。如果你确切地引用了那个答案,那么给你一个更准确的答案会更容易。
根据我对你的问题的理解,它不是,至少它不是通常的样本平均值。然而,它是一个有效的集中趋势估计,但需要注意的是它是一个有偏差的估计量。 请参阅https://en.wikipedia.org/wiki/Bias_of_an_estimator。
让我们定义样本平均值,我将其表示为X' X'= \ sum ^ m_i X_i / N
如果N = m,我们得到标准平均值。在您的情况下,这是不同对的数量,m = n *(n-1)/ 2。我们称之为平均Xo。
然后,如果N = n * n,则为 X'=(n-1)/(2 * n)Xo
Xo是人口平均值的无偏估计量。因此,X'被因子f =(n-1)/(2 * n)偏置。对于n非常大,这种偏差倾向于1/2。那就是说,你看到的答案可能是一笔不仅仅在不同的对上运行的总和。当然,规范化会发生变化。例如,我们可以将该总和扩展到所有对而不改变平均值:正确的归一化将是N = n *(n-1);虽然平均值仍然是Xo,但加法数也是两倍。
答案 1 :(得分:0)
如果用笔和纸手工完成这些事情变得越来越容易理解。
如果您有名为a
,b
,c
,d
,e
,f
,{{1}的7个字符串},那么最简单的版本
g
与a
,b
与a
,...,c
与a
进行比较(此为6)g
与b
,a
与b
,...,c
与b
进行比较(此为6)g
. . .
与g
,a
与g
,...,b
与g
进行比较(此为6)因此,您有7 * 6或f
个值,因此除以n*(n-1)
近似值。 这是广场来自的地方。您甚至可以将7^2
与a
进行比较,其距离应为a
,并将值增加到0
或7*7
。但我觉得有点像平均距离作弊。
你可以将算法的速度加倍,只需稍微改一下
n*n
与a
,b
与a
,...,c
与a
进行比较(此为6)g
与b
,...,c
与b
进行比较(此为5)将g
与c
,...,d
与b
进行比较(此为4)
g
. . .
与f
进行比较(此为1)这是关注好的'高斯g
或7*6/2
。
所以在本质上:尝试在纸上做一个简单的例子,然后计算你的距离值。
由于平均值仍然非常简单:
n*(n-1)/2