首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HDBSCAN和近似预测的问题

HDBSCAN和近似预测的问题
EN

Stack Overflow用户
提问于 2020-03-23 22:49:25
回答 1查看 838关注 0票数 4

我想使用HDBSCAN聚类技术来预测异常值。我已经训练了我的模型来优化参数,但是当我对新数据应用approximate_predict时,我得到了与原始模型中不同的聚类和标签。我将在这里解释流程。

我有一个数据集,如下所示:

我应该注意到,这个数据集有我人工添加的异常值,目的是优化参数。然后,我申请:

代码语言:javascript
复制
clusterer = hdbscan.HDBSCAN(min_cluster_size=10, gen_min_span_tree=True, 
                            cluster_selection_epsilon=0.1,min_samples=1,allow_single_cluster=True, prediction_data=True, leaf_size=30)
clusterer.fit(X_scaled)

获取三个集群(包括离群值-1集群):

在这里,您可以看到集群的外观:

在此之后,我创建了一个名为"new_observation“的数据帧,它实际上是从原始数据集中随机获取的一些观察结果,并应用:

代码语言:javascript
复制
test_labels, strengths = hdbscan.approximate_predict(clusterer, new_observation)
test_labels

这里,我的测试标签如下: array( -1,56,150,-1)

这意味着从这些观察值中,它检测到两个异常值,以及分配给我没有的集群的两个观察值。

此外,请看一下绘制过程,如:

代码语言:javascript
复制
from matplotlib import cm
cmap = cm.get_cmap('Set1')
plt.scatter(x='wind_speed',y='temperature',data=X_scaled, c=clusterer.labels_, cmap=cmap)
plt.scatter(x='wind_speed',y='temperature',data=new_observation, c=test_labels, cmap=cmap, s=120)
plt.show()

我们可以观察到我们有不应该有的异常值。

我真的不知道approximate_predict是如何做我的集群,但它似乎不工作,有人可以帮助我?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 21:04:18

我也有同样的问题。删除cluster_selection_epsilon作为参数,只使用min_samples和min_cluster_size来调优集群。这对我很管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60815892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档