树叶云AI教程:AI人工智能 数据聚类算法

以下是数据聚类的几种常用算法 –

K-Means 算法 K均值聚类算法是众所周知的数据聚类算法之一。 我们需要假设簇的数量已经是已知的。 这也被称为平面聚类。 它是一种迭代聚类算法。 该算法需要遵循以下步骤 –

第1步 – 需要指定所需的K个子组的数量。 第2步 – 修复群集数量并将每个数据点随机分配到群集。 换句话说,我们需要根据群集数量对数据进行分类。

在这一步中,计算聚类质心。

由于这是一种迭代算法,因此需要在每次迭代中更新 K 个质心的位置,直到找到全局最优值或换句话说质心到达其最佳位置。

以下代码将有助于在 Python 中实现 K-means 聚类算法。 我们将使用 Scikit-learn 模块。

导入必需的软件包 –

import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
from sklearn.cluster import KMeans

以下代码行将通过使用 sklearn.dataset包中的 make_blob 来生成包含四个 blob 的二维数据集。

from sklearn.datasets.samples_generator import make_blobs


X, y_true = make_blobs(n_samples = 500, centers = 4,
            cluster_std = 0.40, random_state = 0)

可以使用下面的代码可视化数据集 –

plt.scatter(X[:, 0], X[:, 1], s = 50);
plt.show()

得到以下结果 –

在这里,将 kmeans 初始化为 KMeans 算法,以及多少个群集 (n_clusters) 所需的参数。

kmeans = KMeans(n_clusters = 4)

需要用输入数据训练 K-means 模型。

kmeans.fit(X)
y_kmeans = kmeans.predict(X)
plt.scatter(X[:, 0], X[:, 1], c = y_kmeans, s = 50, cmap = 'viridis')


centers = kmeans.cluster_centers_

下面给出的代码将根据数据绘制和可视化机器的发现,并根据要找到的聚类数量进行拟合。

plt.scatter(centers[:, 0], centers[:, 1], c = 'black', s = 200, alpha = 0.5);
plt.show()

得到以下结果 –

均值偏移算法

它是另一种在无监督学习中使用的流行和强大的聚类算法。 它不做任何假设,因此它是非参数算法。 它也被称为分层聚类或均值聚类分析。 以下将是该算法的基本步骤 –

  • 首先,需要从分配给它们自己的集群的数据点开始。
  • 现在,它计算质心并更新新质心的位置。
  • 通过重复这个过程,向簇的顶点靠近,即朝向更高密度的区域移动。
  • 该算法停止在质心不再移动的阶段。

在下面的代码的帮助下,在 Python 中实现了 Mean Shift 聚类算法。使用 Scikit-learn 模块。

导入必要的软件包 –

import numpy as np
from sklearn.cluster import MeanShift
import matplotlib.pyplot as plt
from matplotlib import style
style.use("ggplot")

以下代码将通过使用 sklearn.dataset 包中的 make_blob 来生成包含四个 blob 的二维数据集。

from sklearn.datasets.samples_generator import make_blobs

可以用下面的代码可视化数据集 –

centers = [[2,2],[4,5],[3,10]]
X, _ = make_blobs(n_samples = 500, centers = centers, cluster_std = 1)
plt.scatter(X[:,0],X[:,1])
plt.show()

执行上面示例代码,得到以下结果 –

现在,我们需要用输入数据来训练 Mean Shift 聚类模型。

ms = MeanShift()
ms.fit(X)
labels = ms.labels_
cluster_centers = ms.cluster_centers_

以下代码将按照输入数据打印聚类中心和预期的聚类数量 –

print(cluster_centers)
n_clusters_ = len(np.unique(labels))
print("Estimated clusters:", n_clusters_)
[[ 3.23005036 3.84771893]
[ 3.02057451 9.88928991]]
Estimated clusters: 2

下面给出的代码将有助于根据数据绘制和可视化机器的发现,并根据要找到的聚类数量进行装配。

colors = 10*['r.','g.','b.','c.','k.','y.','m.']
   for i in range(len(X)):
   plt.plot(X[i][0], X[i][1], colors[labels[i]], markersize = 10)
plt.scatter(cluster_centers[:,0],cluster_centers[:,1],
   marker = "x",color = 'k', s = 150, linewidths = 5, zorder = 10)
plt.show()

执行上面示例代码,得到以下结果 –

测量群集性能

现实世界的数据不是自然地组织成许多独特的群集。 由于这个原因,要想象和推断推理并不容易。 这就是为什么需要测量聚类性能及其质量。 它可以在轮廓分析的帮助下完成。

轮廓分析

该方法可用于通过测量群集之间的距离来检查聚类的质量。 基本上,它提供了一种通过给出轮廓分数来评估像集群数量这样的参数的方法。 此分数是衡量一个群集中每个点与相邻群集中的点的距离的度量。

分析轮廓分数 得分范围为[-1,1]。 以下是对这个分数的分析 –

  • 得分为 +1分 – 得分接近 +1表示样本距离相邻集群很远。
  • 得分为 0分 – 得分 0 表示样本与两个相邻群集之间的决策边界处于或非常接近。
  • 得分为 -1分 – 得分为负分数表示样本已分配到错误的群集。

计算轮廓分数

在本节中,我们将学习如何计算轮廓分数。

轮廓分数可以通过使用以下公式来计算 –

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/233668.html<

(0)
管理的头像管理
上一篇2025-04-20 17:52
下一篇 2025-04-20 17:54

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注