0

HDBSCAN 有一个标志来缓存其集群数据作为参数,如下所述:

prediction_data :boolean, optional

Whether to generate extra cached data for predicting labels or membership vectors few new unseen points later. If you wish to persist the clustering object for later re-use you probably want to set this to True. (default False)

现在我看到在指定位置创建了以下文件夹结构:

>joblib
...>hdbscan
......>hdbscan_
.........>_hdbscan_boruvka_balltree
............>f1bd5f351764560c3532dbe30f273481
...............metadata.json
...............output.pkl
............func_code.py

正如 HDBSCAN 文档所建议的那样,我们可以使用这些文件(可能是 pickle 文件)作为持久性存储,以后可以重新使用它来查找新数据点的集群标签。但我找不到这样做的方法。

4

2 回答 2

1

当我在 HDBSCAN 中搜索缓存时,我来到了这里。我最初的搜索将我带到https://joblib.readthedocs.io/en/latest/auto_examples/memory_basic_usage.html ,在那里我找到了以下代码:

from joblib import Memory
location = './cachedir'
memory = Memory(location, verbose=0)

但在使用它时,我得到了一个

DeprecationWarning: The 'cachedir' parameter has been deprecated in version 0.12 and will 
be removed in version 0.14. 
You provided "cachedir='/tmp/joblib'", use "location='/tmp/joblib'" instead.

因此,导致使用 joblib 在 HDBSCAN 中缓存内存的更新代码

from joblib import Memory
location='/tmp/joblib'
memory = Memory(location, verbose=0)
于 2021-09-07T05:09:49.080 回答
0

您要查看的参数是memory=. 如果您使用相同的参数再次调用 HDBSCANmemory=并且仅更改(例如)在运行之间min_cluster_size显式保持min_samples固定,那么它将节省您重新计算的时间。

于 2020-08-30T21:14:42.950 回答