我有许多实例,每个实例都有其自己的列表,这些列表表示随后的不同步骤。例如:
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 learning进行无监督分类,但是我对此并不熟悉,也不知道如何对这些列表进行分类。
一些帮助将不胜感激。谢谢!
答案 0 :(得分:1)
我认为您可以使用以下技巧来进行此操作而无需任何机器学习
我基于这种算法的假设是,如果没有循环,那么所有步骤都是不同的。
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"
答案 1 :(得分:0)
我认为您可以使用诸如聚类之类的无监督机器学习算法,该算法会将您的相似实例分为一组,称为聚类。
在scikit中可以使用聚类算法,您可以通过下面的链接
http://scikit-learn.org/stable/modules/clustering.html#clustering