0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

10种聚类算法和Python代码3

jf_78858299 来源:海豚科学实验室 作者:海豚科学实验室 2023-02-20 13:57 次阅读

6、DBSCAN

DBSCAN 聚类(其中 DBSCAN 是基于密度的空间聚类的噪声应用程序)涉及在域中寻找高密度区域,并将其周围的特征空间区域扩展为群集。

…我们提出了新的聚类算法DBSCAN 依赖于基于密度的概念的集群设计,以发现任意形状的集群。DBSCAN 只需要一个输入参数,并支持用户为其确定适当的值

-源自:《基于密度的噪声大空间数据库聚类发现算法》,1996

它是通过 DBSCAN 类实现的,主要配置是“ eps ”和“ min _ samples ”超参数。

下面列出了完整的示例。

# dbscan 聚类fromnumpy import uniquefromnumpy import wherefromsklearn.datasets import make_classificationfromsklearn.cluster import DBSCANfrommatplotlib import pyplot# 定义数据集X, _ = make_classification(n_samples=1000,n_features=2,n_informative=2,n_redundant=0,n_clusters_per_class=1,random_state=4)# 定义模型model= DBSCAN(eps=0.30, min_samples=9)# 模型拟合与聚类预测yhat= model.fit_predict(X)# 检索唯一群集clusters= unique(yhat)# 为每个群集的样本创建散点图forcluster in clusters:# 获取此群集的示例的行索引row_ix= where(yhat == cluster)# 创建这些样本的散布pyplot.scatter(X[row_ix,0], X[row_ix,1])# 绘制散点图pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,尽管需要更多的调整,但是找到了合理的分组。

图片

图:使用DBSCAN集群识别出具有集群的数据集的散点图

7、K均值

K-均值聚类可以是最常见的聚类算法,并涉及向群集分配示例,以尽量减少每个群集内的方差。

本文的主要目的是描述一种基于样本将 N 维种群划分为 k 个集合的过程。这个叫做“ K-均值”的过程似乎给出了在类内方差意义上相当有效的分区。

-源自:《关于多元观测的分类和分析的一些方法》1967年

它是通过 K-均值类实现的,要优化的主要配置是“ n _ clusters ”超参数设置为数据中估计的群集数量。下面列出了完整的示例。

# k-means 聚类fromnumpyimportuniquefromnumpyimportwherefromsklearn.datasetsimportmake_classificationfromsklearn.clusterimportKMeansfrommatplotlibimportpyplot# 定义数据集X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)# 定义模型model = KMeans(n_clusters=2)# 模型拟合model.fit(X)# 为每个示例分配一个集群yhat = model.predict(X)# 检索唯一群集clusters = unique(yhat)# 为每个群集的样本创建散点图forclusterinclusters:# 获取此群集的示例的行索引row_ix = where(yhat == cluster)# 创建这些样本的散布pyplot.scatter(X[row_ix,0], X[row_ix,1])# 绘制散点图pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,可以找到一个合理的分组,尽管每个维度中的不等等方差使得该方法不太适合该数据集。

图片

图:使用K均值聚类识别出具有聚类的数据集的散点图

8、Mini-Batch K-均值

Mini-Batch K-均值是 K-均值的修改版本,它使用小批量的样本而不是整个数据集对群集质心进行更新,这可以使大数据集的更新速度更快,并且可能对统计噪声更健壮。

...我们建议使用 k-均值聚类的迷你批量优化。与经典批处理算法相比,这降低了计算成本的数量级,同时提供了比在线随机梯度下降更好的解决方案。

—源自:《Web-Scale K-均值聚类》2010

它是通过 MiniBatchKMeans 类实现的,要优化的主配置是“ n _ clusters ”超参数,设置为数据中估计的群集数量。下面列出了完整的示例。

# mini-batch k均值聚类fromnumpyimportuniquefromnumpyimportwherefromsklearn.datasetsimportmake_classificationfromsklearn.clusterimportMiniBatchKMeansfrommatplotlibimportpyplot# 定义数据集X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)# 定义模型model = MiniBatchKMeans(n_clusters=2)# 模型拟合model.fit(X)# 为每个示例分配一个集群yhat = model.predict(X)# 检索唯一群集clusters = unique(yhat)# 为每个群集的样本创建散点图forclusterinclusters:# 获取此群集的示例的行索引row_ix = where(yhat == cluster)# 创建这些样本的散布pyplot.scatter(X[row_ix,0], X[row_ix,1])# 绘制散点图pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,会找到与标准 K-均值算法相当的结果。

图片

图:带有最小批次K均值聚类的聚类数据集的散点图

9、均值漂移聚类

均值漂移聚类涉及到根据特征空间中的实例密度来寻找和调整质心。

对离散数据证明了递推平均移位程序收敛到最接近驻点的基础密度函数,从而证明了它在检测密度模式中的应用。

—源自:《Mean Shift :面向特征空间分析的稳健方法》,2002

它是通过 MeanShift 类实现的,主要配置是“带宽”超参数。下面列出了完整的示例。

# 均值漂移聚类fromnumpyimportuniquefromnumpyimportwherefromsklearn.datasetsimportmake_classificationfromsklearn.clusterimportMeanShiftfrommatplotlibimportpyplot# 定义数据集X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)# 定义模型model = MeanShift()# 模型拟合与聚类预测yhat = model.fit_predict(X)# 检索唯一群集clusters = unique(yhat)# 为每个群集的样本创建散点图forclusterinclusters:# 获取此群集的示例的行索引row_ix = where(yhat == cluster)# 创建这些样本的散布pyplot.scatter(X[row_ix,0], X[row_ix,1])# 绘制散点图pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,可以在数据中找到一组合理的群集。

图片

图:具有均值漂移聚类的聚类数据集散点图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4637

    浏览量

    67613
  • 数据分析
    +关注

    关注

    2

    文章

    1387

    浏览量

    33874
  • python
    +关注

    关注

    53

    文章

    4747

    浏览量

    83919
收藏 人收藏

    评论

    相关推荐

    Python如何实现模糊动态

    利用 Python实现模糊动态
    发表于06-02 17:38

    基于和竞争克隆机制的多智能体免疫算法

    包含分布式电源的配电网无功优化matlab源 代码代码按照高水平文章复现,保证正确,可先发您文章看是否满足您的要求利用分布式电源的无功补偿能力,提出了一 基于
    发表于12-29 06:50

    算法融合算法研究

    算法 融合 算法研究首先对
    发表于08-10 15:08 33次下载
    <b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>及<b class='flag-5'>聚</b><b class='flag-5'>类</b>融合<b class='flag-5'>算法</b>研究

    改进的BIRCH算法方法

    为解决传统BIRCH 算法对数据对象输入顺序敏感、 结果不稳定的问题,提出了一 改进的BIRCH 算法。该
    发表于11-10 15:52 1次下载
    一<b class='flag-5'>种</b>改进的BIRCH<b class='flag-5'>算法</b><b class='flag-5'>聚</b><b class='flag-5'>类</b>方法

    新的基于流行距离的谱算法

    本文提出了一 新的基于流行距离的谱 算法,这是一 新型的聚类分析 算法。不仅能够对任意的非规则形
    发表于12-07 14:53 3次下载

    基于密度DBSCAN的算法

    本文开始介绍了 算法概念,其次阐述了 算法的分类,最后详细介绍了
    的头像 发表于04-26 10:56 2.1w次阅读
    基于密度DBSCAN的<b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>

    Python无监督学习的几种算法包括K-Means,分层等详细概述

    无监督学习是机器学习技术中的一 ,用于发现数据中的模式。本文介绍用 Python进行无监督学习的几种 算法,包括K-Means
    的头像 发表于05-27 09:59 3w次阅读
    <b class='flag-5'>Python</b>无监督学习的几种<b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>包括K-Means<b class='flag-5'>聚</b><b class='flag-5'>类</b>,分层<b class='flag-5'>聚</b><b class='flag-5'>类</b>等详细概述

    如何在python中安装和使用顶级算法?

    以及每种 算法的不同配置。在本教程中,你将发现如何在 python中安装和使用顶级 算法。 完成本教程后,你将知道:
    的头像 发表于03-12 18:23 2120次阅读

    自适应的关联融合算法

    为解决传统 算法多数需要预先设定聚 参数且无法有效识别异常点和噪声点的问题,提出一 自适应的关联融合
    发表于04-01 16:16 13次下载
    一<b class='flag-5'>种</b>自适应的关联融合<b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>

    10介绍和Python代码

    分享一篇关于 的文章, 10 介绍和 Python
    的头像 发表于07-30 10:25 2806次阅读

    10顶流算法Python实现(附完整代码

    分享一篇关于 的文章: 10 算法
    的头像 发表于01-07 09:33 1164次阅读

    10算法Python代码1

    分享一篇关于 的文章: ** 10 算法
    的头像 发表于02-20 13:57 710次阅读
    <b class='flag-5'>10</b><b class='flag-5'>种</b><b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>和<b class='flag-5'>Python</b><b class='flag-5'>代码</b>1

    10算法Python代码2

    分享一篇关于 的文章: ** 10 算法
    的头像 发表于02-20 13:57 851次阅读
    <b class='flag-5'>10</b><b class='flag-5'>种</b><b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>和<b class='flag-5'>Python</b><b class='flag-5'>代码</b>2

    10算法Python代码4

    分享一篇关于 的文章: ** 10 算法
    的头像 发表于02-20 13:57 1165次阅读
    <b class='flag-5'>10</b><b class='flag-5'>种</b><b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>和<b class='flag-5'>Python</b><b class='flag-5'>代码</b>4

    如何在Python中安装和使用顶级算法

    有许多 算法可供选择,对于所有情况,没有单一的最佳 算法。相反,最好探索一系列
    的头像 发表于05-22 09:13 455次阅读
    如何在 <b class='flag-5'>Python</b> 中安装和使用顶级<b class='flag-5'>聚</b><b class='flag-5'>类</b><b class='flag-5'>算法</b>