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

初试无监督学习 - K均值聚类算法

文章目录

  • 1. K均值聚类算法概述
  • 2. k均值聚类算法演示
    • 2.1 准备工作
    • 2.2 生成聚类用的样本数据集
    • 2.3 初始化KMeans模型对象,并指定类别数量
    • 2.4 用样本数据训练模型
    • 2.5 用训练好的模型生成预测结果
    • 2.6 输出预测结果
    • 2.7 可视化预测结果
  • 3. 实战小结

1. K均值聚类算法概述

  • K均值聚类算法是一种迭代的、基于中心的聚类方法,将数据点划分为K个簇。算法通过随机选择初始中心点,然后迭代地分配数据点到最近的簇中心,并更新簇中心为簇内所有点的均值,直到收敛或达到最大迭代次数。它简单、高效,适用于大规模数据集。

2. k均值聚类算法演示

2.1 准备工作

下面的代码导入数据处理和绘图库,设置绘图样式为seaborn-v0_8,格式化NumPy数组输出。

在这里插入图片描述
下面两行代码是Python中使用scikit-learn库进行聚类分析的准备工作:

  1. from sklearn.cluster import KMeans:这行代码从sklearn.cluster模块中导入KMeans类。KMeans是一种常用的聚类算法,用于将数据点分组成K个簇,使得簇内的点尽可能相似,簇间的点尽可能不同。

  2. from sklearn.datasets import make_blobs:这行代码从sklearn.datasets模块中导入make_blobs函数。make_blobs用于生成人造的聚类数据集,这些数据集由若干个“blobs”组成,每个“blob”是一个高密度的数据点集合,它们在特征空间中相对独立,适合用来测试和展示聚类技术的效果。

通常,这两行代码会用在数据分析或机器学习项目的开始阶段,为聚类任务做准备。
在这里插入图片描述

  • 什么是blobs?在机器学习和数据科学领域,“blobs” 这个词通常用来描述一种特定类型的数据集,这种数据集由聚类算法生成,用于测试和展示聚类技术的效果。“Blobs” 数据集包含若干个 “blob”,每个 “blob” 是一个高密度的数据点集合,它们在特征空间中相对独立。

  • 高斯分布:每个 “blob” 通常由高斯(正态)分布生成,这意味着数据点围绕中心点呈钟形分布。

  • 分离性:不同的 “blobs” 之间相对分离,这使得它们容易被聚类算法识别和分开。

  • 维度:“Blobs” 数据集可以是二维的,用于可视化,也可以是更高维度的,用于更复杂的分析。

2.2 生成聚类用的样本数据集

在这里插入图片描述

2.3 初始化KMeans模型对象,并指定类别数量

在这里插入图片描述

2.4 用样本数据训练模型

在这里插入图片描述

2.5 用训练好的模型生成预测结果

在这里插入图片描述

2.6 输出预测结果

在这里插入图片描述

2.7 可视化预测结果

在这里插入图片描述
一旦训练了如 KMeans之类的算法,它就可以预测新样本 ( 之前未见过的样本 ) 所属的类别。假设我们在描述银行潜在债务人和实际债务人的特征数据集上训练这种算法,它可以通过生成两个类别来了解潜在债务人的信誉度,将新的潜在债务人归类为两个类别之一:​“信誉良好”与“信誉不佳”。

3. 实战小结

通过本次实战,我们深入理解并应用了K均值聚类算法,这是一种广泛应用于数据科学领域的无监督学习方法。我们首先导入了必要的库,包括数据处理的NumPy、数据分析的Pandas以及数据可视化的Matplotlib,并设置了绘图样式以提升图表美观度。接着,我们利用make_blobs函数生成了模拟数据,为聚类分析提供了基础数据集。

在初始化KMeans模型时,我们指定了类别数量,这在实际应用中需要根据数据特性和业务需求来确定。通过训练模型并生成预测结果,我们成功地将数据点划分为不同的簇。最后,通过可视化预测结果,我们直观地展示了聚类效果,进一步验证了模型的准确性。

此外,我们还探讨了"blobs"的概念,即由聚类算法生成的高密度数据点集合,它们在特征空间中的相对独立性为聚类算法提供了理想的测试环境。通过本次实战,我们不仅掌握了K均值聚类算法的实现流程,还学会了如何通过数据可视化来评估聚类效果,为解决实际问题打下了坚实基础。

相关文章:

初试无监督学习 - K均值聚类算法

文章目录 1. K均值聚类算法概述2. k均值聚类算法演示2.1 准备工作2.2 生成聚类用的样本数据集2.3 初始化KMeans模型对象,并指定类别数量2.4 用样本数据训练模型2.5 用训练好的模型生成预测结果2.6 输出预测结果2.7 可视化预测结果 3. 实战小结 1. K均值聚类算法概述…...

捉虫笔记(七)-再探谁把系统卡住了

捉虫笔记(七)-再探谁把系统卡住 1、内核调试 在实体物理机上,内核调试的第一个门槛就是如何建立调试链接。 这里我选择的建立网络连接进行内核调试。 至于如何建立网络连接后续文章再和大家分享。 2、如何分析 在上一篇文章中,我们…...

【Linux课程学习】:《简易版shell实现和原理》 《哪些命令可以让子进程执行,哪些命令让shell执行(内键命令)?为什么?》

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 打印命令行提示符(PrintCommandLin…...

2024年11月27日Github流行趋势

项目名称:screenshot-to-code 项目维护者:abi clean99 sweep-ai kachbit vagusX项目介绍:通过上传截图将其转换为整洁的代码(支持HTML/Tailwind/React/Vue)。项目star数:62,429项目fork数:7,614…...

Java中的线程池使用详解

文章目录 Java中的线程池使用详解一、引言二、线程池的创建与使用1、线程池的创建1.1、FixedThreadPool(固定大小线程池)1.2、CachedThreadPool(可缓存线程池)1.3、SingleThreadExecutor(单线程化线程池)1.…...

Redis(概念、IO模型、多路选择算法、安装和启停)

一、概念 关系型数据库是典型的行存储数据库,存在的问题是,按行存储的数据在物理层面占用的是连续存储空间,不适合海量数据存储。 Redis在生产中使用的最多的是用作数据缓存。 服务器先在缓存中查询数据,查到则返回,…...

计算机网络 第4章 网络层

计算机网络 (第八版)谢希仁 第 4 章 网络层4.2.2 IP地址**无分类编址CIDR**IP地址的特点 4.2.3 IP地址与MAC地址4.2.4 ARP 地址解析协议4.2.5 IP数据报的格式题目2:IP数据报分片与重组题目:计算IP数据报的首部校验和(不正确未改) …...

Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this

目录 一,方法的重写 二,重写方法的注意事项 三,方法重写的使用场景 四,super和this 1.继承中构造方法的特点 2.super和this的具体使用 super的具体使用 this的具体使用 一,方法的重写 1.概述:子类中有一个和父类…...

高级java每日一道面试题-2024年11月27日-JVM篇-JVM的永久代中会发生垃圾回收么?

如果有遗漏,评论区告诉我进行补充 面试官: JVM的永久代中会发生垃圾回收么? 我回答: 在Java虚拟机(JVM)的历史版本中,确实存在一个称为“永久代”(Permanent Generation, 或者简称PermGen)的内存区域。永久代主要用…...

Spring Boot教程之十: 使用 Spring Boot 实现从数据库动态下拉列表

使用 Spring Boot 实现从数据库动态下拉列表 动态下拉列表(或依赖下拉列表)的概念令人兴奋,但编写起来却颇具挑战性。动态下拉列表意味着一个下拉列表中的值依赖于前一个下拉列表中选择的值。一个简单的例子是三个下拉框,分别显示…...

基于混合ABC和A*算法复现

基于混合ABC和A*算法复现 一、背景介绍二、算法原理(一)A*算法原理(二)人工蜂群算法原理(三)混合ABC和A*算法策略 三、代码实现(一)数据准备(二)关键函数实现…...

狂野飙车8+(Asphalt 8+) for Mac 赛车竞速游戏 安装教程

Mac分享吧 文章目录 狂野飙车8(Asphalt 8) for Mac 赛车竞速游戏软件 效果图展示一、狂野飙车8(Asphalt 8) 赛车竞速游戏 Mac电脑版——v2.1.11️⃣:下载软件2️⃣:安装软件2.1 左侧安装包拖入右侧文件夹中,等待安装完成,运行软件…...

网络技术-VRRP(虚拟路由冗余协议)部署介绍

一、VRRP的含义 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种高度可靠的路由器备用协议,用于在局域网内部提供路由器冗余。 其部署方式主要是通过多个路由器组成一个虚拟路由器组,通过协议选…...

C语言解决空瓶换水问题:高效算法与实现

标题:C语言解决空瓶换水问题:高效算法与实现 一、问题描述 在一个饮料促销活动中,你可以通过空瓶换水的方式免费获得更多的水:3个空瓶可以换1瓶水。喝完这瓶水后,空瓶会再次变为空瓶。假设你最初拥有一定数量的空瓶&a…...

day2全局注册

全局注册代码: //文件核心作用:导入App.vue,基于App.vue创建结构渲染index.htmlimport Vue from vue import App from ./App.vue //编写导入的代码,往代码的顶部编写(规范) import HmButton from ./components/Hm-But…...

鸿蒙多线程应用-taskPool

并发模型 并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发模型作为基于消息通信并发模型的典型代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同…...

【失败经验】将算法模型封装为安卓应用

背景:不懂安卓开发,希望能使用大模型编码完成安卓应用生成,调用算法模型进行预测。 模型准备: pip方案安装pcnn; 然后需要将pytorch训练完成的算法模型保存为torchscript模型,然后使用pcnn转换为ncnn的模…...

ABAP OOALV模板

自用模板,可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…...

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-autobatch.py

autobatch.py ultralytics\utils\autobatch.py 目录 autobatch.py 1.所需的库和模块 2.def check_train_batch_size(model, imgsz640, ampTrue, batch-1): 3.def autobatch(model, imgsz640, fraction0.60, batch_sizeDEFAULT_CFG.batch): 1.所需的库和模块 # Ultraly…...

SycoTec 4060 ER-S德国高精密主轴电机如何支持模具的自动化加工?

SycoTec 4060 ER-S高速电主轴在模具自动化加工中的支持体现在以下几个关键方面: 1.高精度与稳定性:SycoTec 4060 ER-S锥面跳动小于1微米,确保了加工过程中的极高精度,这对于模具的复杂几何形状和严格公差要求至关重要。高精度加工…...

终极指南:如何通过x-spreadsheet服务端渲染实现首屏加载速度提升300%

终极指南:如何通过x-spreadsheet服务端渲染实现首屏加载速度提升300% 【免费下载链接】x-spreadsheet The project has been migrated to wolf-table/table https://github.com/wolf-table/table 项目地址: https://gitcode.com/gh_mirrors/xs/x-spreadsheet …...

Wave包实战案例:为Flutter应用添加动态背景与加载动画的完整教程

Wave包实战案例:为Flutter应用添加动态背景与加载动画的完整教程 【免费下载链接】wave A Flutter package for displaying waves. 项目地址: https://gitcode.com/gh_mirrors/wave1/wave Wave包是一款专为Flutter开发者设计的强大动画库,能够轻松…...

Nuclide插件开发终极指南:如何快速构建Atom IDE扩展

Nuclide插件开发终极指南:如何快速构建Atom IDE扩展 【免费下载链接】nuclide An open IDE for web and native mobile development, built on top of Atom 项目地址: https://gitcode.com/gh_mirrors/nu/nuclide Nuclide是一个基于Atom构建的开源IDE&#…...

Qwen3-0.6B-FP8效果对比:FP8量化对Qwen3-0.6B在AlpacaEval 2.0得分影响深度分析

Qwen3-0.6B-FP8效果对比:FP8量化对Qwen3-0.6B在AlpacaEval 2.0得分影响深度分析 最近,大模型部署和推理的效率问题越来越受到关注。模型越大,对显存和算力的要求就越高,这让很多想用大模型的朋友望而却步。有没有办法让模型“瘦身…...

浅聊Flink的广播模式

浅聊Flink的广播模式 前言 最近接触到一个新颖的中间件 Flink,为什么接触到这个呢,是因为我们公司系统需要做一个告警模块,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topic 里面实时读取到监控数据,并将读取到的监控数据做一些 聚合/转换/计算…...

080校园共享系统-springboot+vue

文末领取项目源码springbootvue 1.首页请文末卡片dd我获取源码...

2026 年 1-2 月中国大模型备案发展分析报告

一、报告核心概况2026 年 1-2 月,国家网信办持续推进生成式人工智能服务备案工作,期间共完成 48 款大模型备案,覆盖全国 16 个省级行政区及国资委监管的中央企业。此次备案大模型呈现 “区域分布多元、行业场景聚焦” 的特征,技术…...

VS2022智能提示汉化保姆级教程:5分钟搞定.NET 7.0中文提示

VS2022智能提示汉化实战指南:从原理到个性化配置 每次在Visual Studio 2022中看到满屏的英文智能提示,你是否会感到一丝不便?特别是对于刚接触.NET开发的新手来说,英文术语可能会成为理解代码的障碍。本文将带你深入探索VS2022智…...

Go语言开发的Kscan vs Nmap:资产测绘工具选型指南(2023最新对比)

Go语言开发的Kscan vs Nmap:资产测绘工具选型指南(2023最新对比) 在网络安全和运维领域,资产测绘工具的选择往往决定了工作效率和结果的可靠性。随着Go语言在系统工具开发中的广泛应用,Kscan作为新兴的全能型扫描器&am…...

android mtk camera如何自定义默认拍照与录像分辨率

1. MTK Camera分辨率适配原理揭秘 MTK平台的Camera应用在启动时会自动选择与屏幕比例匹配的最佳分辨率。这个设计初衷是为了保证预览画面能够全屏显示,避免出现黑边影响用户体验。但实际开发中,我们经常遇到需要自定义默认分辨率的需求,比如追…...