我有一组警报,我想根据相似度/距离对其进行分组。由于我们有非数字数据,我如何为这类数据执行聚类。
set.seed(42)
data.frame(Host1 = rep("del",10),
Host2 = c(rep("cpp",4), rep("sscp",3), rep("portal",3)),
Host3 = c(rep("web",5), rep("apache",3), rep("app",2)),
Host4 = c(sample(3,8, replace = TRUE), rep("con",2)),
Date1 = abs(round(1:10 + rnorm(10),2)))
Host1 Host2 Host3 Host4 Date1
1 del cpp web 3 1.40
2 del cpp web 3 1.89
3 del cpp web 1 4.51
4 del cpp web 3 3.91
5 del sscp web 2 7.02
6 del sscp apache 2 5.94
7 del sscp apache 3 8.30
8 del portal apache 1 10.29
9 del portal app con 7.61
10 del portal app con 9.72
期待建立集群。
答案 0 :(得分:1)
根据定义,它最小化平方偏差。最小化平方偏差仅对连续数据有意义。任何一种热门编码都只是一种黑客攻击;它使数据类型兼容,但不是合理的方法。
分层聚类可行。如果您可以定义一个量化距离的有意义的距离函数。但这取决于应用程序。我们没有您的数据,也不了解您的问题。我们无法为你解决这个问题。