稀疏亲和传播聚类

pysapc的Python项目详细描述


用于稀疏关联传播(SAP)群集方法的Python包。
affinity propagation(ap)是brendan j.frey和delbert dueck提出的一种相对较新的聚类算法。与k-均值等经典聚类方法相比,ap具有聚类误差小、聚类数自动确定、样本(聚类中心)识别等优点。支持非对称确定性聚类结果的相似性(k-means聚类结果依赖于初始化,因此需要多次运行才能实现全局优化)。pysapc可以采用scipy稀疏矩阵(亲合/相似矩阵)代替完全相似矩阵。当完全相似矩阵不适合内存时,pysapc将非常有用。使用cython优化速度和内存。



安装:

从源安装:
下载并解压缩源文件并安装为:
python setup.py install


从pip安装:pip install pysapc

从conda安装:conda install-c https://conda.anaconda.org/bioifcao pysapc

安装,在python shell中,运行:
from pysapc import tests
tests.testdense()
testsparse()

quick start:

verboseiter=100)
sap样本=sap.fit预测(x)x应该是scipy稀疏相似矩阵



请注意,亲和性/相似性矩阵不需要是对称的,s(a,b)可以与s(b,a)不同。事实上可能是s(a,b)存在,而s(b,a)不存在于稀疏的亲和力/相似矩阵中。样本)
数据点k,p(k)的偏好将设置为相似性/相似性矩阵s(k,k),即数据点k作为样本(聚类中心)的先验适合性,较高的偏好值将导致更多的样本(聚类中心)。
一个好的初始选择是最小值('min')或中值('median')完全稠密亲和/相似矩阵。
请注意,不建议稀疏亲和/相似矩阵的最小值('min')或中值('median')。

收敛系数:int,可选,默认值:15。在数据点的示例(群集中心)标签中,没有更改或更改小于1.0-收敛百分比的迭代次数


收敛百分比:浮点,可选,默认值:0.999999,
此参数用于定义收敛条件。如果设置为0.999999,则100万个数据点中的一个或少于一个不改变它们的示例(聚类中心)将被认为是收敛的。< BR/>因为PYSAPC被设计用于处理大数据。如果pysapc尚未在max iter收敛,请尝试增大max iter。

damping:float,可选,默认值:0.9。
阻尼因子应介于0.5和1之间。

详细级别。如果设置为0或无,则无详细输出;
如果设置为1,则打印每个迭代的状态。
如果设置为100,则为每个100次迭代打印当前状态

并行:布尔值,默认值:真
是否启用cython多处理。建议将其设置为true以加快速度。


属性
----
示例:每个数据点的群集中心,相同长度h个样本。
每个数据点的样本(聚类中心)索引(矩阵的行索引)


注释
----
准备稀疏矩阵,对所有样本使用单一截止(例如保持全矩阵的前20%)或对每个样本使用不同的截止值,以便每个样本具有k个最近邻。建议用户尝试几种稀疏矩阵,并比较其聚类结果,以确定聚类结果何时达到平台(当包含更多数据时,聚类结果不会显著改变)



references
-------
brendan j.frey和delbert dueck,“通过在数据点之间传递消息进行聚类”,科学杂志,2007年2月

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

推荐PyPI第三方库


热门话题
固件文件的java容器:二进制数据部分的集合   java如何查找和跳过单词开头和结尾的特殊字符   JavaFXMaven插件:com。zenjava jfx:jar是否包含所有依赖项?   用户界面使Java Netbeans GUI生成器在读取文本文件的某些部分之前等待事件发生   由于Kotlin中存在未解析的引用,java无法设置文本或可绘制   java JSON解析嵌套数组对象   java如何使用Hibernate(EntityManager)或JPA调用Oracle函数或过程   链接列表末尾的java插入节点   jaxb EclipseLink Moxy:Java类型绑定不使用子类型(组合)   java为什么选择事件源模式中的事件流?   java为什么我的Eclipse项目与ClearCase没有关联?   通过Talend正确完成java数据库迁移   java如何自动调用数字键盘?   swing Java反射,投射到未知对象?   正则表达式如何在java中提取文本文件的键和值?   java rmi应用程序   线程“main”java中出现异常。lang.NoClassDefFoundError在我的测试中出现错误   java open失败:API 21中的EACCES(权限被拒绝)   java(RxJava)移植的Groovy方法不起作用   java AndroidStudio:如何在片段中移动按钮