HDBScan
基于层次密度的应用空间聚类
有噪音。在不同的epsilon值上执行dbscan并集成
找到一个聚类的结果,它比epsilon更稳定。
这使得hdbscan能够找到密度不同的集群(与dbscan不同)。
对参数选择更加稳健。
实际上,这意味着hdbscan直接返回一个好的集群
只需很少或根本没有参数调整,而主要参数,
最小群集大小,直观且易于选择。
HDBScan是探索性数据分析的理想选择;它是一种快速和健壮的
可以信任的算法返回有意义的集群(如果有
有)。
根据论文:
< Buff行情>
McInnes L,Healy J.
基于加速分层密度的聚类
在:2017年IEEE国际数据挖掘研讨会(ICDMW),IEEE,第33-42页。
2017年
[pdf]
R.Campello、D.Moulavi和J.Sander,
基于密度的聚类
层次密度估计
in:知识发现的进展数据挖掘,斯普林格,160-172页。
2013
阅读文档(包括教程)可在http://hdbscan.readthedocs.io/en/latest/" rel="nofollow">http://hdbscan.readthedocs.io/en/latest/上找到。
笔记本电脑将HDBScan与其他群集算法进行比较scan/blob/master/notebooks/how%20hdbscan%20works.ipynb" rel="nofollow">hdbscan如何工作和
比较执行与其他python集群实现的ance
可用。
如何使用HDBScan
hdbscan包继承自sklearn类,因此可以方便地插入
与其他具有相同调用api的sklearn cluster相邻。同样地
支持多种格式的输入:数组(或pandas数据框,或
稀疏矩阵)形状
(num-samples x num-features)
;数组(或稀疏矩阵)
给出样本之间的距离矩阵。importhdbscanfromsklearn.datasetsimportmake_blobsdata,_=make_blobs(1000)clusterer=hdbscan.HDBSCAN(min_cluster_size=10)cluster_labels=clusterer.fit_predict(data)
性能
为了使hdbscan的实现速度与
可能的。它是一个HRFF="http://nbVistor.juyter .org/Github/ScKIT"学习CuriB/HDBSnc/Bulb/Muth/BoothBoo/Python %20VS%20Java.IPyb"Rele="nfoLoLo>">比爪哇中的参考实现更快的数量级,
并且目前比C和C++中高度优化的单链接实现更快。
在本笔记本中可以看到0.7版的性能
。
特别是,低维数据的性能优于sklearn的dbscan,
并通过支持joblib缓存,使用不同参数重新集群
几乎是免费的。
附加功能
hdbscan包配备了可视化工具来帮助您
了解聚类结果。在拟合数据之后,聚类器
对象具有以下属性:浓缩的群集层次结构
健壮的单连杆机群层次结构
可达距离最小生成树
所有这些都配备了绘图和转换的方法
给熊猫或网络作进一步分析。看上面的笔记本
如何使用hdbscan
以获取示例和更多详细信息。
cluster对象还有一个提供集群成员身份的属性
强度,导致可选的软聚类(无需进一步计算
费用)。最后,每个集群还收到一个持久性得分
星系团在距离尺度范围内的稳定性
在数据中。这提供了集群相对强度的度量。
异常值检测
hdbscan集群对象也支持glosh离群点检测算法。
将聚类器拟合到数据后,可以通过
异常值得分属性。结果是一个分数向量,一个用于
每个合适的数据点。分数越高,表示的对象越离群。
通过上分位数选择离群值通常是一种尝试OD进近。< DL>
基于论文:R.J.G.B.坎佩罗、D.穆拉维、A.齐梅克和J.桑德
数据聚类、可视化和离群点检测的分层密度估计
,
ACM反式《从数据中发现知识》,第10卷,第1期(2015年7月),第1-51页。坚固的单连杆
hdbscan包还支持
健壮的单连杆
chaudhuri和dasgupta的聚类算法。和HDBScan一样
实现这是算法的高性能版本
优于scipy的标准单链接实现。这个
稳健的单连杆结构可用作
强大的单连杆组合器,同样具有绘图功能
或者导出层次结构,并在给定位置提取平面簇
切割电平和伽马值。示例用法:importhdbscanfromsklearn.datasetsimportmake_blobsdata,_=make_blobs(1000)clusterer=hdbscan.RobustSingleLinkage(cut=0.125,k=7)cluster_labels=clusterer.fit_predict(data)hierarchy=clusterer.cluster_hierarchy_alt_labels=hierarchy.get_clusters(0.100,5)hierarchy.plot()
< DL>
基于论文:K.Chaudhuri和S.Dasgupta。
"聚类树的收敛速度。"
神经信息处理系统进展,2010年。安装
最简单的安装,如果你有蟒蛇(感谢康达锻造这是可怕的!)conda install -c conda-forge hdbscan
pypi安装,假设您有最新的pip:pip install hdbscan
由于
ryan helinski
rlhelinski
@
gmail
com
>;
如果pip在提取依赖项时遇到困难,那么我们建议首先升级
Pip到至少版本10,然后重试:pip install --upgrade pip
pip install hdbscan
否则,使用anaconda手动安装依赖项,然后从pip中拉出hdbscan:conda install cython
conda install numpy scipy
conda install scikit-learn
pip install hdbscan
直接从github手动安装最新代码:pip install --upgrade git+https://github.com/scikit-learn-contrib/hdbscan.git#egg=hdbscan
或者下载软件包、安装要求并手动运行安装程序:wget https://github.com/scikit-learn-contrib/hdbscan/archive/master.zip
unzip master.zip
rm master.zip
cd hdbscan-master
pip install -r requirements.txt
python setup.py install运行测试
安装后,可以使用以下命令运行包测试:nosetests -s hdbscan
或者,如果安装了nose
,但nosetests不在您的路径变量中:importhdbscanfromsklearn.datasetsimportmake_blobsdata,_=make_blobs(1000)clusterer=hdbscan.HDBSCAN(min_cluster_size=10)cluster_labels=clusterer.fit_predict(data)
0
如果一个或多个测试失败,请在https://github.com/scikit-learn-contrib/hdbscan/issues/new" rel="nofollow">https://github.com/scikit learn-contrib/hdbscan/issues/new上报告错误
python版本
hdbscan库同时支持python 2和python 3。但是,如果您可以使用python 3,我们建议您选择它。
帮助和支持
有关简单问题,请参阅文档中的faq。
如果您的问题在那里没有得到适当的解决,请检查github上的
问题
。最后,如果没有可用的解决方案,请随时打开问题;作者将尝试以合理及时的方式作出回应。
贡献
我们欢迎任何形式的贡献!帮助编写文档,特别是扩展教程,
总是受欢迎的。若要做出贡献,请执行更改并提交请求。我们将尽最大努力解决
然后将代码合并到主分支中。
引用
如果您在科学出版物中使用过此代码库,并希望引用它,请使用《开放源代码软件杂志》的
文章
< Buff行情>
L.McInnes,J.Healy,S.AST公司els,
hdbscan:基于层次密度的聚类
在:开放源码软件期刊,开放期刊,第2卷,第11期。
2017年
importhdbscanfromsklearn.datasetsimportmake_blobsdata,_=make_blobs(1000)clusterer=hdbscan.HDBSCAN(min_cluster_size=10)cluster_labels=clusterer.fit_predict(data)
1
要参考此库中开发的高性能算法,请引用我们在ICDMW 2017会议记录中的论文。
< Buff行情>
McInnes L,Healy J.
基于加速分层密度的聚类
在:2017年IEEE国际数据挖掘研讨会(ICDMW),IEEE,第33-42页。
2017年
importhdbscanfromsklearn.datasetsimportmake_blobsdata,_=make_blobs(1000)clusterer=hdbscan.HDBSCAN(min_cluster_size=10)cluster_labels=clusterer.fit_predict(data)
2许可
hdbscan包是3条bsd许可的。享受。