验证群集结果

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无法启动发现(Android附近连接API v2)   如何用Java在Firestore中创建嵌套字段?   GUI Java中的swing BMI计算器;   java如何检查上下文是否为当前正在运行的活动   LiveCycle ES4支持java 8吗?   构建Spring引导API后,java类路径不正确   启动时swing Java Jtable行颜色   JAVAutil。ConcurrentModificationException随着Apache Tomee Plus 7.1.2的发布启动ear文件   在JAVA中使用lambda表达式的foreach for循环   java小程序没有在我的IE8和firefox6中运行。0.2   java有没有比ConcurrentHashMap性能更好的并发映射?   java Android静态与非静态问题   尝试提交TableCell时调用java cancelEdit()   java在LINUX系统上使用MCRTsim模拟器   Java多态性方法重写