有没有办法使用 scikit 的无监督方法学习将一些列表分类到不同的组中?

Is there a way using unsupervised method of scikit learn to classify some list into different groups?

我有很多实例,每个实例都有自己的列表,代表它遵循的不同步骤。例如:

1284 -> [0, 100, 200, 100, 200, 300, 600]
1285 -> [0, 100, 200, 100, 200, 300, 500, 999]
1286 -> [0, 100, 200, 300, 600]
...
13023 -> [0, 100, 170, 100, 200]

例如,实例 1284 会像这样执行步骤 0 到 600

0 -> 100
100 -> 200
200 -> 100
100 -> 200
200 -> 300
300 -> 100

我已经设法获取了每个实例的路径列表,但我想找到带有循环的实例并将它们分类。例如,实例 1284 执行步骤 100 和 200 两次。

我想知道怎么做。我想到了scikit learn的无监督分类,但是我对它不熟悉,我不知道如何对这些列表进行分类。

如果能提供一些帮助,我们将不胜感激。谢谢!

我认为您可以使用以下技巧在没有任何机器学习的情况下做到这一点

  1. 将步骤列表更改为集合
  2. 现在将集合的大小与原始步骤的大小进行比较
  3. 如果大小相同则有所有不同的步骤
  4. 否则有一个循环

我基于此算法的假设是,如果没有循环,那么所有步骤都是不同的。

list_1284 = [0, 100, 200, 100, 200, 300, 600]

set_1284 = set(list_1284)

if len(set_1284) != len(list_1284):
   print "There exists a loop"

else:
   print "No loop exists"