Python28-5 k-means算法

k-means 算法介绍

k-means 算法是一种经典的聚类算法,其目的是将数据集分成 ( k ) 个不同的簇,每个簇内的数据点尽可能接近。算法的基本思想是通过反复迭代优化簇中心的位置,使得每个簇内的点与簇中心的距离之和最小。k-means 算法的具体步骤如下:

  1. 初始化:随机选择 ( k ) 个点作为初始簇中心。

  2. 分配簇:对于数据集中每一个点,计算其到所有簇中心的距离,并将其分配到最近的簇。

  3. 更新中心:重新计算每个簇的中心,即簇内所有点的平均值。

  4. 重复步骤2和3,直到簇中心不再发生变化或达到预设的迭代次数。

代码示例及可视化

以下是一个使用 Python 实现 k-means 算法并进行可视化的示例:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans# 生成示例数据
np.random.seed(42)
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)# 运行 k-means 算法
kmeans = KMeans(n_clusters=4)
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='red', s=200, alpha=0.75)
plt.title('k-means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

运行结果:

图片

代码解释

  1. 数据生成:使用 make_blobs 函数生成300个样本点,分成4个簇,每个簇的标准差为0.60。

  2. k-means 算法:使用 KMeans 类进行聚类,指定聚类数为4。通过 fit 方法对数据进行聚类,并用 predict 方法预测每个样本的簇。

  3. 可视化:使用 Matplotlib 绘制聚类结果。样本点根据其簇类别着色,并用红色标记簇中心。

这个示例展示了如何使用 k-means 算法对数据进行聚类,并通过可视化展示聚类结果和簇中心的位置。

以上内容总结自网络,如有帮助欢迎转发,我们下次再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/38019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

S7-1500轴工艺对象105报文安装(硬件目录的支持包 HSP)

S7-1500PLC里硬件组态没法组态到105报文是因为对应的HSP文件没有安装,首先需要安装对应的HSP文件。 1、HSP文件安装 V19版本的HSP安装链接如下 https://download.csdn.net/download/m0_46143730/89503735 2、安装HSP文件 3、需要将博途软件关闭才能完成安装 4、拖…

猫头虎博主全栈前沿AI技术领域矩阵社群

猫头虎博主全栈前沿AI技术领域矩阵社群 👋大家好,我是猫头虎!今天我要向大家介绍一个非常重要的社群矩阵——专为全栈前沿AI技术领域的朋友们打造的各种技术交流和资源互助的社群。这些社群不仅能帮助大家快速提升技术水平,还能拓…

【MySQL备份】Percona XtraBackup全量备份实战篇

目录 1. 前言 2.准备工作 2.1.环境信息 2.2.创建备份目录 2.3.配置/etc/my.cnf文件 2.4.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练:利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文…

Java服务器代码远程调试(IDEA版)

Java服务器代码远程调试 配置启动脚本参数配置IDEA远程调试工具操作步骤 注意:远程调试的代码需要与本地代码一致,远程调试目的是解决本地环境无法支持调试的情况下,解决线上(测试)环境调试问题。 配置启动脚本参数 n…

如何压缩视频大小,怎么压缩视频

在数字化浪潮中,视频已成为我们生活和工作的重要部分。但视频往往伴随着大文件体积,这给存储和分享带来了不少困扰。本文将为您揭秘好用的压缩视频的方法,帮助您轻松减小视频文件大小,提高分享效率! 方法,使…

[图解]SysML和EA建模住宅安全系统-05-参数图

1 00:00:01,140 --> 00:00:03,060 这是实数没错,这是分钟 2 00:00:03,750 --> 00:00:07,490 但是你在这里选,选不了的 3 00:00:07,500 --> 00:00:09,930 因为它这里不能够有那个 4 00:00:11,990 --> 00:00:13,850 但是我们前面这里 5 00…

【Python爬虫】Python爬取喜马拉雅,爬虫教程!

一、思路设计 (1)分析网页 在喜马拉雅主页找到自己想要的音频,得到目标URL:https://www.ximalaya.com/qinggan/321787/ 通过分析页面的网络抓包,最终的到一个比较有用的json数据包 通过分析,得到了发送json…

docker部署前端,配置域名和ssl

之前使用80端口部署前端项目后,可以使用IP端口号在公网访问到部署的项目。 进行ICP域名备案后,可以通过域名解析将IP套壳,访问域名直接访问到部署的项目~ 如果使用http协议可以很容易实现这个需求,对nginx.conf文件进行修改&#…

Spring Boot集成DeepLearning4j实现图片数字识别

1.什么是DeepLearning4j? DeepLearning4J(DL4J)是一套基于Java语言的神经网络工具包,可以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成,支持分布式CPU和GPU,为商业环境(而非研究工具目的…

《昇思25天学习打卡营第28天 | 昇思MindSporeVision Transformer图像分类》

第28天 本节学习了Vision Transformer图像分类 ViT则是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。ViT模型的主体结构是基于Transformer模型的Encoder部分(部分结构顺序有调整&a…

Mojo: AI开发的革命性编程语言

------------->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<------------- 刚刚Mojo和HuggingFace一样发布新版本&#xff0c;此版本编号为24.4&#xff0c;包括几个核心语言和标准库增强功能。此版本最大的亮点之一是收到了来自18个社区贡献者的21…

Docker Desktop安装mysql

安装 Docker Desktop 1、访问 Docker Desktop 官方下载地址&#xff1a;https://www.docker.com/products/docker-desktop/ &#xff0c; 选择对应平台的 Docker Desktop 安装包点击下载&#xff1a; 2、下载成功后&#xff0c;双击开始安装&#xff1a; 3、安装之前的相关配…

产品经理-对产品经理的认识(1)

今天跟大家聊一下产品经理这个岗位的,产品经理是互联网岗位当中比较火的一个岗位,也是最接近CEO的岗位 产品经理岗位&#xff0c;技术门槛低&#xff0c;薪水和前景都很不错&#xff0c;又处于团队的核心位置 产品经理岗位没有完全相关的专业设置和清晰的学习路径&#xff0c;绝…

java框架的落地实践案例:大数据平台设计与实现

使用 java 框架设计和实现大数据平台可为企业提供数据处理和分析解决方案&#xff0c;使之能够做出数据驱动的决策。系统采用微服务架构&#xff0c;分解数据处理任务为松散耦合组件&#xff0c;构建于 spring boot 等 java 框架之上。数据采集通过kafka 进行&#xff0c;数据清…

Rust借助dotenv库读取环境变量

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

(亲测有效)2024代替电视家的app,电视家停了还有什么软件可以看电视?

嘿&#xff0c;大家好&#xff0c;我是阿星&#xff0c;今天又来跟大家聊聊那些让人眼前一亮的电视直播软件。咱们这回不聊那些老掉牙的&#xff0c;来点新鲜的&#xff0c;让咱们的电视屏幕也能跟上潮流&#xff0c;享受一下科技带来的便利和乐趣。 首先&#xff0c;得提一提…

如何评价CSS框架TailwindCSS?

端午三天&#xff0c;你们在放假&#xff0c;而我&#xff0c;一个人躲在家里&#xff0c;苦练 tailwindcss。 我在准备这样一个学习项目&#xff0c;它与传统的文章/视频类学习不同&#xff0c;我会在教程中内置大量的可交互案例&#xff0c;提供沉浸式的学习体验&#xff0c…

Zynq7000系列FPGA中DMA引擎编程指南

DMA引擎的编程指南通常涉及一系列步骤和API调用&#xff0c;以确保数据在内存之间的高效传输&#xff0c;而无需CPU的直接干预。 DMA引擎的编程指南包括以下部分&#xff1a; 一、编写微代码为AXI事务编写CCRx程序 通道微码用于设置dmac.CCRx寄存器以定义AXI事务的属性。这是…

TikTok直播限流与网络的关系及解决方法

TikTok作为一款热门的社交平台&#xff0c;其直播功能吸引了大量用户。然而&#xff0c;一些用户可能会遇到TikTok直播限流的问题&#xff0c;例如直播过程中出现播放量低、直播画面质量差等情况。那么&#xff0c;TikTok直播限流与所使用的网络线路是否有关系&#xff1f;是否…

学习springIOC

第二章 Spring IOC 章节内容 Spring IOC技术实现Spring IOC设值注入Spring IOC构造注入 章节目标 掌握Spring IOC技术实现掌握Spring IOC设置注入掌握Spring IOC构造注入 第一节 Spring简介 1. Spring 简介 Spring 是目前主流的 Java 开发框架&#xff0c;是 Java 世界最…