首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DBSCAN滑雪非常慢

DBSCAN滑雪非常慢
EN

Stack Overflow用户
提问于 2018-09-28 18:08:28
回答 2查看 6.4K关注 0票数 3

我正在尝试对一个数据集进行聚类,该数据集有100多万个数据点。一列有文本,另一列有对应的数值。我面临的问题是,它被卡住了,永远也不会完成。我试着使用大约100000个较小的数据集,它的工作速度相当快,但是当我开始增加数据点时,它就开始减速,并且有一百万的数据集从未完成和挂起。最初,我认为这可能是因为我有一个文本的tfidf矩阵,并且有100个维度,所以需要很长的时间。然后,我尝试了基于数量的聚类,这只是每个数据点的一个值,但它仍然没有完成。下面是代码片段。知道我做错了什么吗?我看到人们使用更大的数据集,没有问题。

代码语言:javascript
运行
复制
Y=data['amount'].values
Y=Y.reshape(-1,1)
dbscan = DBSCAN(eps=0.3, min_samples= 10, algorithm='kd_tree')
dbscan.fit_predict(Y)
labels = dbscan.labels_
print(labels.size)
clusters = labels.tolist()
#printing the value and its label
for a, b in zip(labels, Y):
    print(a, b)
EN

回答 2

Stack Overflow用户

发布于 2018-09-30 06:00:14

很可能你的感受器太大了。

如果大多数点位于大多数其他点的epsilon内,则运行时将是二次O(n平方)。所以从小值开始吧!

您不能只是添加/删除特性而保持epsilon不变。

票数 3
EN

Stack Overflow用户

发布于 2018-09-29 21:55:42

用更多的核心。

使用n_jobs参数。n_jobs=-1**inside** DBSCAN 将其定义为:类.

示例:

代码语言:javascript
运行
复制
Y=data['amount'].values
Y=Y.reshape(-1,1)
dbscan = DBSCAN(eps=0.3, min_samples= 10, algorithm='kd_tree', n_jobs=-1)
dbscan.fit_predict(Y)
labels = dbscan.labels_
print(labels.size)
clusters = labels.tolist()
#printing the value and its label
for a, b in zip(labels, Y):
    print(a, b)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52560683

复制
相关文章

相似问题

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