验证群集结果

validclust的Python项目详细描述


validclust

Validate clustering results

Linux Build StatusPyPI version

动机

聚类算法通常要求分析者指定数据中存在的簇的数目,通常称为^ {CD1>}。为k确定适当值的一种方法是使用k的一系列值对数据进行聚类,然后使用聚类有效性指数(cvi)评估结果聚类的质量。然后选择根据cvi对数据进行最佳分区的k值。validclust为分析员处理这个过程,使快速确定k的最佳值变得非常容易。

安装

您可以从pypi获得稳定版本:

pip install validclust

或者github的开发版本:

pip install git+https://github.com/crew102/validclust.git

基本用法

1.加载库。

importmatplotlib.pyplotaspltfromsklearn.datasets.samples_generatorimportmake_blobsfromvalidclust.validclustimportValidClust

2.创建一些合成数据。数据将集中在4个中心。

data,_=make_blobs(n_samples=500,centers=4,n_features=5,random_state=0)

3.使用ValidClust确定最佳簇数。下面的代码将使用两种不同的聚类算法将数据划分为2-7个簇,然后计算结果中的各种cvi。

vclust=ValidClust(k=list(range(2,8)),methods=['hierarchical','kmeans'])cvi_vals=vclust.fit_predict(data)print(cvi_vals)#>                                    2            3            4            5  \#> method       index                                                            #> hierarchical silhouette     0.645563     0.633970     0.747064     0.583724   #>              calinski    1007.397799  1399.552836  3611.526187  2832.925655   #>              davies         0.446861     0.567859     0.361996     1.025296   #>              dunn           0.727255     0.475745     0.711415     0.109312   #> kmeans       silhouette     0.645563     0.633970     0.747064     0.602562   #>              calinski    1007.397799  1399.552836  3611.526187  2845.143428   #>              davies         0.446861     0.567859     0.361996     0.988223   #>              dunn           0.727255     0.475745     0.711415     0.115113   #> #>                                    6            7  #> method       index                                 #> hierarchical silhouette     0.435456     0.289567  #>              calinski    2371.222506  2055.323553  #>              davies         1.509404     1.902413  #>              dunn           0.109312     0.116557  #> kmeans       silhouette     0.468945     0.334379  #>              calinski    2389.531071  2096.945591  #>              davies         1.431102     1.722117  #>              dunn           0.098636     0.072423  

很难从上面显示的原始cvi值看出k的最佳值。并不是所有的CVI都在0-1分范围内,分数越低,一些指标的聚类结果越好。ValidClustplot()方法解决了这个问题,首先对cvi进行标准化,然后在热图中显示结果。

vclust.plot()

对于上述网格中的每一行(即,对于每个聚类方法/cvi对),较暗的单元格与较高质量的聚类相关联。从这个图中我们可以看到,每个方法/索引对似乎都指向4作为k的最佳值。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用和返回方法   java如何为安卓开发设置eclipse?   java为泛型类中的通配符传递任何具体类都会产生错误。为什么?   带有正则表达式过滤器的MongoDB Java驱动程序聚合   运行使用OPENQUERY访问链接服务器的TSQL查询时出现java JDBC错误   java使用GZIP、JSON响应和JQuery   java如何使用onSaveInstanceState保存复选框状态   在Java中根据XSD 1.1验证XML时出错   如何在Java中以编程方式运行GlueGen发射器?   Java PathIterator如何准确计算形状对象的中心?   java在ArraysList对象中查找最小值   javascript JxBrowser LoadURL/LoadHTML   java Apache的HttpClient管理内联URL身份验证吗?   java如何使用failsafe和Junit5测试JPMS服务,而无需创建额外的测试模块?   javascript如何使用HtmlUnit修复从网站加载的所有URL?   java连接AppEngine数据存储和搜索API   Android中的java日期格式日历   eclipse java。awt。机器人连续按键   java字节[]数组在输入SQLITE数据库之前和之后都会发生变化