使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不同步骤。例如:

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 -> 100100 -> 200200 -> 100100 -> 200200 -> 300300 -> 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 "存在循环"else:   print "不存在循环"

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注