大规模数据聚类算法


大规模数据聚类算法 策略:一是从数据集中 选取合适的子集来进行聚类,从子集中找到每个簇的中心,然后将剩下的样本归入到离其最近的簇。但是很难确定选定的子集是否最能代表原数据集。二是采用其他占用内存较小的变量来代替原数据集中的多个样本,这样就有可能把所有数据样本的替代变量放入内存中,如文献【7】、【8】采用向量或者矩阵来替代原始数据,但是因为仅通过替代变量不能区分其所替代的样本,因而在某些情况将影响到聚类的效果。第三种就是采用分布式处理的方法,采用Map_Reduce的方案,将 大数据集分解成小数据集,然后分别对每个小数据集进行聚类,然后将所有的聚类结果合并,如文献【9】、【10】、【11】。
————————————————
版权声明:本文为CSDN博主「ymkrdfewxf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ymkrdfewxf/article/details/8023750

1 MiniBatchKMeans算法

在这里插入图片描述
MiniBatchKMeans类主要参数
    MiniBatchKMeans类的主要参数比KMeans类稍多,主要有:

1) n_clusters: 即我们的k值,和KMeans类的n_clusters意义一样。

2)max_iter:最大的迭代次数, 和KMeans类的max_iter意义一样。

3)n_init:用不同的初始化质心运行算法的次数。这里和KMeans类意义稍有不同,KMeans类里的n_init是用同样的训练集数据来跑不同的初始化质心从而运行算法。而MiniBatchKMeans类的n_init则是每次用不一样的采样数据集来跑不同的初始化质心运行算法。

          4)batch_size:即用来跑Mini Batch KMeans算法的采样集的大小,默认是100.如果发现数据集的类别较多或者噪音点较多,需要增加这个值以达到较好的聚类效果。

5)init: 即初始值选择的方式,和KMeans类的init意义一样。

6)init_size: 用来做质心初始值候选的样本个数,默认是batch_size的3倍,一般用默认值就可以了。

7)reassignment_ratio: 某个类别质心被重新赋值的最大次数比例,这个和max_iter一样是为了控制算法运行时间的。这个比例是占样本总数的比例,乘以样本总数就得到了每个类别质心可以重新赋值的次数。如果取值较高的话算法收敛时间可能会增加,尤其是那些暂时拥有样本数较少的质心。默认是0.01。如果数据量不是超大的话,比如1w以下,建议使用默认值。如果数据量超过1w,类别又比较多,可能需要适当减少这个比例值。具体要根据训练集来决定。

8)max_no_improvement:即连续多少个Mini Batch没有改善聚类效果的话,就停止算法, 和reassignment_ratio, max_iter一样是为了控制算法运行时间的。默认是10.一般用默认值就足够了。

————————————————
版权声明:本文为CSDN博主「yiyue21」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yiyue21/article/details/90240473

2.BIRCH 大规模数据聚类算法

BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) 是一种在特别大规模的数据集上进行分层聚类的非监督的数据挖掘算法。它能增量的,动态的对输入的多维度数据在给定有限的内存和时间条件的情况下进行高质量 的聚类。大多数情况下,BIRCH只需要对数据进行一次遍历。同时,BIRCH被认为是“数据库领域高效控制噪声的第一聚类算法”。
————————————————
版权声明:本文为CSDN博主「非同_寻常」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ftxc_blog/article/details/12565727

BIRCH是—个一次扫描就可以进行较好的聚类,它利用层次方法的平衡迭代进行聚类。其核心是用一个聚类特征三元组表示一个簇的有关信息,从而使一簇点的表示可用对应的聚类特征。它通过构造满足分支因子和簇直径(阈值)限制的聚类特征树来求聚类。

疑惑:社区发现和聚类的区别?

专门用于解决复杂网络问题的聚类算法称之为Community detection(CD)

联系:在一定意义上,社团发现就是一种类型的聚类,可以说是图聚类,图一般是稀疏的。区别就在于:常见的聚类一般是假设任何对象之间都是连接的,只是距离(或者相似度)不同,比如划分、层次、密度聚类等,如果看作是一张图,那就是完全联通图,当然图聚类除外。还有个区别就是:一般聚类是将数据集划分为k个不相交的子集,虽然也有些聚类算法是可以相交。而社区发现包括非重叠社区与重叠社区

作者:贺勇
链接:https://www.zhihu.com/question/41902416/answer/120035380
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在这里插入图片描述

sklearn聚类官方网址

https://scikit-learn.org.cn/view/108.html#2.3.2.%20K-means

在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YingJingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值