如何比较两个列表在同一顺序中的程度?

Ben*_*Ben 7 algorithm

我有两个包含相同元素的数组,但顺序不同,我想知道它们的顺序不同的程度.

我试过的方法不起作用.它如下:

对于每个列表,我构建了一个矩阵,该矩阵为每对元素记录它们在列表中是高于还是低于对方.然后我计算了这两个矩阵的皮尔森相关系数.这非常糟糕.这是一个简单的例子:

list 1:
1
2
3
4

list 2:
1
3
2
4

我上面描述的方法产生了这样的矩阵(其中1表示行号高于列,0表示反之亦然):

list 1:
  1 2 3 4
1   1 1 1
2     1 1
3       1
4

list 2:
  1 2 3 4 
1   1 1 1
2     0 1 
3       1
4

由于唯一的区别是元素2和3的顺序,因此应视为非常相似.这两个矩阵的Pearson相关系数为0,表明它们根本没有相关性.我想问题是我正在寻找的不是真正的相关系数,而是一些其他类型的相似性度量.编辑距离,也许?

谁能提出更好的建议?

jam*_*esh 12

每个元素的指数差异的均方值.

List 1: A B C D E
List 2: A D C B E
Run Code Online (Sandbox Code Playgroud)

清单2中清单1的每个要素的指数(基于零)

A B C D E
0 3 2 1 4
Run Code Online (Sandbox Code Playgroud)

清单1中清单1的每个要素的指数(基于零)

A B C D E
0 1 2 3 4
Run Code Online (Sandbox Code Playgroud)

区别:

A  B C D E
0 -2 0 2 0
Run Code Online (Sandbox Code Playgroud)

差异方块:

A B C D E
  4   4
Run Code Online (Sandbox Code Playgroud)

平均差异= 8/5.