genie+聚类算法

genieclust的Python项目详细描述


genieclust python包(正在开发中

genie+聚类算法

作者:Marek Gagolewski

应用层次聚类算法所需的时间最多 通常由成对相异的计算次数支配 测量。对于较大的数据集,这样的约束将处于不利地位 所有经典连锁标准的使用,除了单一连锁标准。 然而,众所周知,单连杆聚类算法是非常 对异常值敏感,产生高度倾斜的树状图,因此 通常不反映真正的底层数据结构- 除非星团被很好地分开。

为了克服其局限性,我们提出了一种新的层次聚类链接 标准叫做精灵。也就是说,我们的算法在 一种选择的经济不平等衡量方法(这里是基尼指数) 簇的大小不会在给定阈值以上急剧增加。

基准表明采用的方法具有很高的实用价值: 它通常优于病房或平均连锁,k-means, 光谱聚类、dbscan、birch等 质量,同时保持单连杆速度。算法简单 可并行化,因此可以在多个线程上运行以加快 继续执行。它的内存开销很小:不需要 预先计算完整的距离矩阵以执行计算 以获得所需的群集。

见:Gagolewski M.,Bartoszuk M.,Cena A., genie:一种新的、快速的、抗离群点的分层聚类算法, 信息科学363,2016年,第8-23页。 doi:10.1016/j.ins.2016.05.003

这是一个新的、更快的、甚至更健壮的实现 在克兰的原始算法中, 见R包^{}

套餐功能

  • genie+算法(使用类似于scikit-learn的接口) 加上一个健壮的hdbscan版本*
  • 分离集数据结构(带扩展)
  • 各种不平等措施(基尼指数、邦费罗尼指数等)
  • 计算分区相似性度量的函数 (兰特、调整兰特、福克斯马洛和调整福克斯马洛指数)
  • 最小生成树prim算法的实现 (@todo@并行化,需要o(n**2)时间和o(n)内存)
  • 各种绘图功能

安装

这个包需要python 3.6+和 sklearnnumpyscipymatplotlibcython

通过pip

# @TODO@ - not yet on PyPI

最新开发版本:

git clone https://github.com/gagolews/genieclust.git
cd genieclust
python setup.py build_ext --inplace
python setup.py install --user

示例

许可证

此软件包根据BSD 3条款“新”或“修订”许可证获得许可。

Copyright (C) 2018 Marek.Gagolewski.com
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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

推荐PyPI第三方库


热门话题
java如何在glassfish 3中创建jdbc资源/连接池时指定域名   java如何让HttpURLConnection setConnectTimeout在Android下工作?   Android中的java嵌套ArrayList   我可以使用Android Sdk<=26的java时间库的所有功能吗   java Android Facebook图形api基本信息请求   添加Glabel形成三角形java程序   使用spring boot和itext将java HTML呈现为可下载的PDF   java spring MVC安全API问题   具有getDrawable兼容性的java问题   java只使用流收集结果(不使用外部循环)   java不可解析日期:“2016年10月13日星期四21:06:31+0200”(偏移量8)   Java日历中的前一天时间不正确   C++实现指针和数组移植到java   java如何使用JAVA8流从类中获取所需的值   Java使用文件将文件复制到zip中