我目前正在试验 scikit 和 DBSCAN 算法。我想知道如何将数据与标签结合起来以将它们写入一个新文件。我还想了解标签数组如何用于过滤示例。
每当我说错话时请纠正我,因为我想更好地理解整个过程。
例如,我的数据如下所示:
city x y
A 1 1
B 1 1
C 5 5
D 8 8
因此,如果我理解正确,我首先需要拆分我想要集群的数据。如果我使用上面的数据,它也会考虑城市列(甚至失败)。
所以我的下一个数组看起来像这样:
x y
1 1
1 1
5 5
8 8
现在我将在我的阵列上使用 DBSCAN,它将创建一个集群模型。集群标签现在存储在数组foo.labels_中。
据我所知,我可以使用这些标签过滤数据以获取集群中的项目。假设我的数据在数据框城市中:
cluster0 = cities[foo.labels_ == 0]
我不明白这是如何工作的。我不知何故不明白这里到底发生了什么。我知道标签在一个数组中,其中列是一个数字,列的值是簇。那么我如何获得我的城市的正确索引?
因此,在聚类之后,我想将我的数据导出回具有以下格式的 CSV 文件:
city x y cluster
A 1 1 0
B 1 1 0
C 5 5 1
D 8 8 2
我的猜测是使用原始数据框并添加另一列,如下所示:
cities = cities.assign(cluster=p.Series(labels_))
但我绝对不确定这是否是实现我想做的正确方法。
我真的很感激一些意见和解释。