当前位置: 首页 > news >正文

集成算法(聚类)

下面简单集成算法代码

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 创建数据集,生成 3 个中心的聚类数据,共 300 个样本,每个样本 2 个特征
X, _ = make_blobs(n_samples=300, centers=3, n_features=2, random_state=42)

# 进行 K 均值聚类,设置聚类数为 3
kmeans = KMeans(n_clusters=3, random_state=42)
y_pred = kmeans.fit_predict(X)

# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], 
s=300, c='red', marker='*', label='Centroids')
plt.legend()
plt.title('K-Means Clustering')
plt.show()

这段代码展示了如何使用scikit-learn库实现K均值(K-Means)聚类算法,并通过可视化呈现聚类结果。

首先是数据生成环节。代码利用make_blobs函数创建了一个模拟数据集,其中参数n_samples=300指定生成300个样本,centers=3定义了数据潜在的3个聚类中心,n_features=2设置每个样本包含2个特征(便于二维可视化),random_state=42确保结果可重复。生成的数据集X是一个300行2列的数组,包含了分布在3个中心周围的样本点,由于未使用标签信息,该过程属于无监督学习的数据准备。

接下来是K均值聚类的实现。通过KMeans类初始化模型,n_clusters=3指定聚类数量为3(与数据生成时的中心数一致),random_state=42固定随机种子以保证结果稳定。调用fit_predict方法同时完成模型训练和预测,返回的y_pred是长度为300的数组,每个元素表示对应样本所属的聚类类别(0、1或2),实现了对无标签数据的自动分组。

最后是结果可视化部分。使用matplotlib.pyplot绘制散点图:以样本的两个特征分别作为横、纵轴,用c=y_pred通过不同颜色区分聚类结果,cmap='viridis'设置配色方案;同时用红色星号标记出聚类中心(kmeans.cluster_centers_存储了3个中心的坐标),并通过s=300放大显示以突出其位置。图表添加了图例、标题,最终通过plt.show()展示图像。

从结果来看,可视化图像会清晰呈现3组颜色不同的样本点,每组点围绕一个红色星号(聚类中心)分布,直观体现了K均值算法的核心思想——通过迭代计算,将数据划分为K个聚类,使每个样本到其所属聚类中心的距离之和最小化。此案例中,由于使用了预设3个中心的模拟数据,聚类结果通常会与真实分布高度吻合,验证了K均值在简单数据集上的有效性。该代码为理解无监督聚类算法提供了直观示例,可通过调整n_clusters等参数观察不同聚类数量对结果的影响。

http://www.dtcms.com/a/344002.html

相关文章:

  • Vue生命周期以及自定义钩子和路由
  • Manus AI 与多语言手写识别技术全解析
  • c++最新进展
  • linux下top命令分析内存不足vs负载过高
  • MeterSphere接口自动化多场景批量运行复制引用
  • 疯狂星期四文案网第47天运营日记
  • 云市场周报 (2025.08.22):阿里云RDS降价、腾讯云Serverless容器新品发布
  • Adobe Photoshop 2025 版本介绍与使用指南
  • AE下载安装教程(附安装包)Adobe Media Encoder超详细图文安装教程
  • Azure TTS Importer:一键导入,将微软TTS语音接入你的阅读软件!
  • 开发避坑指南(30):Vue3 表格动态增加删除行解决方案
  • 数据库备份sql文件过大,phpAdmin无法执行Sql
  • 深入理解Spring事务传播行为:原理、应用与实践
  • Vue Teleport 原理解析与React Portal、 Fragment 组件
  • 高德地图自定义marker,点击、悬停显示信息框
  • 智能合约漏洞检测技术综述:守护区块链世界的“自动售货机”
  • syn和quote的简单使用——生成结构体
  • Java基础 8.22
  • 在自动驾驶中ESKF实现GINS时,是否将重力g作为变量考虑进去的目的是什么?
  • 从Transformer到扩散模型:解锁大模型背后的技术魔法
  • 微信小程序,事件总线(Event Bus) 实现
  • Git 提交除某个文件外的其他所有文件
  • linux搭建本地yum源仓库
  • windows安装Elasticsearch,ik分词器,kibana可视化工具
  • Go初级二
  • 集群与负载均衡:HAProxy 与 Nginx 实践
  • 第41周——人脸图像生成
  • Java 性能优化实战(三):并发编程的 4 个优化维度
  • 第3课:Flutter基础组件
  • 上海人工智能实验室开源基于Intern-S1同等技术的轻量化开源多模态推理模型