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



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

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"

相关内容

  • 没有找到相关文章

最新更新