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

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

3天内不再提示

10种聚类算法和Python代码4

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

10、OPTICS

OPTICS 聚类( OPTICS 短于订购点数以标识聚类结构)是上述 DBSCAN 的修改版本。

我们为聚类分析引入了一种新的算法,它不会显式地生成一个数据集的聚类;而是创建表示其基于密度的聚类结构的数据库的增强排序。此群集排序包含相当于密度聚类的信息,该信息对应于范围广泛的参数设置。

—源自:《OPTICS :排序点以标识聚类结构》,1999

它是通过 OPTICS 类实现的,主要配置是“ eps ”和“ min _ samples ”超参数。下面列出了完整的示例。

# optics聚类
from numpy import unique
from numpy import where
from sklearn.datasets import make_classification
from sklearn.cluster import OPTICS
from matplotlib 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 = OPTICS(eps=0.8, min_samples=10)
# 模型拟合与聚类预测
yhat = model.fit_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
    # 获取此群集的示例的行索引
    row_ix = where(yhat == cluster)
    # 创建这些样本的散布
    pyplot.scatter(X[row_ix, 0], X[row_ix, 1])
# 绘制散点图
pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,我无法在此数据集上获得合理的结果。

图片

图:使用OPTICS聚类确定具有聚类的数据集的散点图

11、光谱聚类

光谱聚类是一类通用的聚类方法,取自线性线性代数。

最近在许多领域出现的一个有希望的替代方案是使用聚类的光谱方法。这里,使用从点之间的距离导出的矩阵的顶部特征向量。

—源自:《关于光谱聚类:分析和算法》,2002年

它是通过 Spectral 聚类类实现的,而主要的 Spectral 聚类是一个由聚类方法组成的通用类,取自线性线性代数。要优化的是“ n _ clusters ”超参数,用于指定数据中的估计群集数量。下面列出了完整的示例。

# spectral clustering
from numpy import unique
from numpy import where
from sklearn.datasets import make_classification
from sklearn.cluster import SpectralClustering
from matplotlib 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 = SpectralClustering(n_clusters=2)
# 模型拟合与聚类预测
yhat = model.fit_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
    # 获取此群集的示例的行索引
    row_ix = where(yhat == cluster)
    # 创建这些样本的散布
    pyplot.scatter(X[row_ix, 0], X[row_ix, 1])
# 绘制散点图
pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。

在这种情况下,找到了合理的集群。

图片

图:使用光谱聚类聚类识别出具有聚类的数据集的散点图

12、高斯混合模型

高斯混合模型总结了一个多变量概率密度函数,顾名思义就是混合了高斯概率分布。它是通过 Gaussian Mixture 类实现的,要优化的主要配置是“ n _ clusters ”超参数,用于指定数据中估计的群集数量。下面列出了完整的示例。

# 高斯混合模型
from numpy import unique
from numpy import where
from sklearn.datasets import make_classification
from sklearn.mixture import GaussianMixture
from matplotlib 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 = GaussianMixture(n_components=2)
# 模型拟合
model.fit(X)
# 为每个示例分配一个集群
yhat = model.predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
    # 获取此群集的示例的行索引
    row_ix = where(yhat == cluster)
    # 创建这些样本的散布
    pyplot.scatter(X[row_ix, 0], X[row_ix, 1])
# 绘制散点图
pyplot.show()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,我们可以看到群集被完美地识别。这并不奇怪,因为数据集是作为 Gaussian 的混合生成的。

图片

图:使用高斯混合聚类识别出具有聚类的数据集的散点图

三、总结

在本教程中,您发现了如何在 python 中安装和使用顶级聚类算法。具体来说,你学到了:

  • 聚类是在特征空间输入数据中发现自然组的无监督问题。
  • 有许多不同的聚类算法,对于所有数据集没有单一的最佳方法。
  • 在 scikit-learn 机器学习库的 Python 中如何实现、适合和使用10种顶级聚类算法
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68521
  • 数据分析
    +关注

    关注

    2

    文章

    1445

    浏览量

    34050
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84627
收藏 人收藏

    评论

    相关推荐

    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.2w次阅读
    基于密度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 2224次阅读

    自适应的关联融合算法

    为解决传统算法多数需要预先设定聚参数且无法有效识别异常点和噪声点的问题,提出一自适应的关联融合
    发表于 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 3045次阅读

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

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

    10算法Python代码1

    分享一篇关于的文章: **10算法
    的头像 发表于 02-20 13:57 846次阅读
    <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 994次阅读
    <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代码3

    分享一篇关于的文章: **10算法
    的头像 发表于 02-20 13:57 1135次阅读
    <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>3

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

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