我对以下两个问题感到非常困惑:我有一个15维的数据集,应该用来聚类分析数据集中包含多少种类型的攻击。
1. 现在我已经将我的数据集聚类成了5个聚类(5种攻击)。有谁知道我如何能指出哪个聚类对应哪种攻击?(如何标记聚类而不仅仅是用“聚类1,聚类2…”这样的标签)
2. 在有监督的分类中,我们有训练数据集和测试数据集,测试是用从训练数据集构建的分类器进行的。我的问题是,同样的方法是否可以用于聚类分析?比如用聚类算法构建一个模型,然后自动将新实例分类到特定的聚类中?这是可以实现的吗?
回答:
无监督方法如何能够识别出命名攻击?
数据中并没有人为指定的名称!
对于某些聚类算法,你可以自动分配新实例,但总的来说,你是不能这样做的(除非你知道聚类所使用的模型)。在最坏的情况下,一个新的观察可能会例如合并两个聚类变成一个。那时你会怎么做?
如果你想要分类,就使用分类,而不是聚类。
聚类分析的思维方式与分类完全不同。如果你从分类的角度来接近聚类分析,你将无法真正理解它。你使用聚类分析来发现数据中未知的东西,使用分类来将已知的东西推广到新数据上。
如果有必要,你也可以在你的聚类上训练一个分类器。但不要盲目地这样做。首先要确保这些聚类实际上是有用的。得到一个完全无意义的聚类结果比得到一个好的聚类结果要容易得多。在毫无价值的聚类上训练分类器不会产生有意义的输出。