我正在使用ELKI进行DBSCAN集群,并使用ClusteringVectorDumper将集群ID输出到文本文件中。
异常值得到哪个id? 我以为它是' 0' 0但这似乎不是真的。
答案 0 :(得分:0)
您可以在线找到ClusteringVectorDumper的源代码。
对噪声群集没有特殊处理,但它们将按Clustering.getAllClusters()
返回的方式进行处理。为了提供一些稳定性,此方法目前按 name 排序。 DBSCAN不提供其他群集名称(某些算法会分配例如间隔名称或子空间名称),因此如果我没记错,所有群集都将命名为"Cluster"
或"Noise"
。由于"Noise"
在"Cluster"
之后排序,因此最大索引应该是噪音群。
随意发送拉取请求以改进命名或输出。我一直在考虑对噪声簇使用负数,但这会增加代码的复杂性;人们可能也不希望看到群集-1
。
滥用DBSCAN进行离群值检测效果不佳。它会遗漏异常值,因为它们是可达的,它会将低密度聚类分配为异常值,而其他方法很容易识别。它也没有提供排名,因此您几乎无法控制您获得的异常值。如果您要修改DBSCAN以提供这样的排名,您可能会重新发明最古老的异常值检测方法之一kNN离群值检测。 (DB-Outlier也与DBSCAN密切相关)。