dpcluster是一个用于组合(集群)向量的包。它根据底层的dirichlet进程混合模型自动选择最适合数据的集群数量。

dpcluster的Python项目详细描述


说明

dpcluster是一个用于组合(集群)向量的包。它自动选择最适合数据的集群数量。具体来说,它将数据建模为指数族中的dirichlet过程混合物。有关教程,请参见“Dirichlet Process” by Y.W. Teh (2010)。目前唯一实现的分布是具有正态逆wishart共轭先验的多元高斯分布,但可以扩展到其他分布。

实现了两种推理算法:

要在本地安装,请运行:

python setup.py install --user

用法

下面是一个简单的示例,演示如何对平面中的多个随机点进行聚类:

>>> from dpcluster import *
>>> n = 10
>>> data = np.random.normal(size=2*n).reshape(-1,2)
>>> vdp = VDP(GaussianNIW(2))
>>> vdp.batch_learn(vdp.distr.sufficient_stats(data))
>>> plt.scatter(data[:,0],data[:,1])
>>> vdp.plot_clusters(slc=np.array([0,1]))
>>> plt.show()

根据随机生成的数据,运行此命令可能会生成2-3个集群。当我们将数据点的数目从n = 10增加到n = 500时,dirichlet进程混合模型的自适应性质就变得明显了。在这种情况下,聚类算法可能只使用一个聚类来解释数据。

待办事项

  • 实现更多的聚类算法,例如基于gibbs抽样、期望传播、随机梯度下降。
  • 实现更多的集群分布。
  • 重新实现算法以利用多核或gpu计算。

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

推荐PyPI第三方库


热门话题
JBossJava进程内存持续增长   Java postincrement(++)在作为参数传递时表现不符合预期   TableView列的java编辑值   java根据springboot@Scheduled注释使用的条件动态修改调度程序计时   java无法将jsp表单值设置为类变量   java ParseQuery from字段未保存   java为什么日历返回月份。是否获取(Calendar.MONTH)上个月而不是当前月?   java无法获取api密钥的md5指纹   java通用DAO和嵌套属性支持   javapomi的版本已经改变了。从OJDBC6到OJDBC8的xml。使用新版本OJDBC8执行某些查询时出现锁定问题   java IntelliJ颜色方案定制   java从第三方读取Linux存储库   amazon s3在AWS s3 Java SDK中设置对象元数据   java一对多映射比