第2篇 机器学习基础 —(4)k-means聚类算法

前言:Hello大家好,我是小哥谈。聚类算法是一种无监督学习方法,它将数据集中的对象分成若干个组或者簇,使得同一组内的对象相似度较高,不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域。常见的聚类算法包括K-Means、层次聚类、DBSCAN、AP聚类、谱聚类等。本节课就简单介绍k-means聚类算法!~🌈

前期回顾:

               第2篇 机器学习基础 —(1)机器学习概念和方式

               第2篇 机器学习基础 —(2)分类和回归

               第2篇 机器学习基础 —(3)机器学习库之Scikit-Learn

              目录

🚀1.什么是聚类

🚀2.K-Means聚类算法

🚀3.K-means聚类优缺点

🚀4.聚类数据生成器

🚀1.什么是聚类

聚类算法是一种无监督学习方法,它将数据集中的对象分成若干个组或者簇,使得同一组内的对象相似度较高,不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域。常见的聚类算法包括K-Means层次聚类DBSCANAP聚类谱聚类等。其中,K-Means是一种基于距离的聚类算法,层次聚类是一种基于树形结构的聚类算法,DBSCAN是一种基于密度的聚类算法,AP聚类是一种基于相似度传播的聚类算法,谱聚类是一种基于图论的聚类算法。每种聚类算法都有其适用的场景和优缺点。

说明:♨️♨️♨️

聚类类似于分类,不同的是聚类所要求划分的类是未知的,也就是说不知道应该属于哪类,而是通过一定的算法自动分类。在实际应用中,聚类是一个将数据集中在某些方面相似的数据中,并进行分类组织的过程(简单地说,就是将相似数据聚在一起)。

聚类的主要应用领域:

商业:聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同客户群的特征。

生物:聚类分析被用来对动植物分类和对基因进行分类,获取对种群固有结构的认识。

保险行业:聚类分析通过一个高的平均消费来鉴定汽车保险单持有者的分组,同时根据住宅类型、价值和地理位置来判断一个城市的房产分组。

因特网:聚类分析被用来在网上进行文档归类。

电子商务:聚类分析在电子商务网站建设数据挖掘中也是很重要的一个方面,通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,可以更好地帮助电商了解自己的客户,向客户提供更合适的服务。

等等......🍉 🍓 🍑 🍈 🍌 🍐


🚀2.K-Means聚类算法

K-Means是一种常见的聚类算法,它的目标是将数据集分成K个簇,使得同一簇内的数据点相似度较高,不同簇之间的相似度较低。K-Means算法的基本思路是随机选择K个中心点,然后将每个数据点分配到距离最近的中心点所在的簇中,接着重新计算每个簇的中心点,重复以上步骤直到簇不再发生变化或达到预设的迭代次数。K-Means算法的优点是简单易懂,计算速度快,但是需要预先指定簇的数量K,且对于不同的初始中心点选择可能会得到不同的聚类结果。

k-means 算法是一种无监督学习算法,目的是将相似的对象归到同一个簇中。簇内的对象越相似,聚类的效果就越好。传统的聚类算法包括划分方法、层次方法、基于密度方法、基于网格方法和基于模型方法。本节主要介绍K-means 聚类算法,它是划分方法中较典型的一种,也可以称为k均值聚类算法

说明:♨️♨️♨️

K-means聚类也称为k均值聚类,是著名的划分聚类的算法,由于简洁性和高效率,使得它成为所有聚类算法中应用最为广泛的一种。k均值聚类是给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法将根据某个距离函数反复把数据分入k个聚类中。

K-Means聚类流程:

随机选取k个点作为初始质心(质心即簇中所有点的中心),然后将数据集中的每个点分配到一个簇中。具体来说,为每个点找距其最近的质心,并将其分配给该质心所对应的簇。这一步完成之后,每个簇的质心更新为该簇所有点的平均值。这个过程将不断重复直到满足某个终止条件。

终止条件可以是以下中的任何一个:

  1. 没有(或最小数目)对象被重新分配给不同的聚类。
  2. 没有(或最小数目)聚类中心再发生变化。
  3. 误差平方和局部最小。

通过以上介绍,相信您对K-means聚类算法已经有了初步的认识,而在Python中应用该算法无需手动编写代码,因为Python的第三方模块Scikit-Learn已经帮我们写好了,在性能和稳定性上会好得多,只需在程序中调用即可,没必要自己造轮子。

关于Scikit-Learn的介绍及应用,请参考文章:

第2篇 机器学习基础 —(3)机器学习库之Scikit-Learn


🚀3.K-means聚类优缺点

K-means是一种常用的聚类算法,其优缺点如下:

优点:

  1. 原理简单,容易实现。
  2. 可解释度较强。
  3. 可以通过加速算法来提高效率。
  4. 具有良好的可扩展性,适用于大规模数据集。
  5. 聚类效果较好,适用于一些简单的数据集。

缺点:

  1. K值很难确定。
  2. 容易陷入局部最优解。
  3. 对噪音和异常点敏感。
  4. 需要样本存在均值,限定数据种类。
  5. 聚类效果依赖于聚类中心的初始化。
  6. 对于非凸数据集或类别规模差异太大的数据效果不好。

🚀4.聚类数据生成器

Scikit-Learn 中的make_blobs方法用于生成聚类算法的测试数据,直观地说,make_blobs 方法可以根据用户指定的特征数量、中心点数量、范围等来生成几类不同的数据,这些数据可用于测试聚类算法的效果。

make_blobs 方法的语法如下:

sklearn.datasets.make_blobs(n_samples=100,n_features=2,centers=3,cluster_std=1.0,center_box=(-10.0,10.0),shuffle=True,random_state=None)

常用参数说明:

n_samples:待生成的样本的总数。

n_features:每个样本的特征数。

centers:类别数。

cluster_std:每个类别的方差。例如,生成两类数据,其中一类比另一类具有更大的方差,可以将cluster_std 参数设置为[1.0,3.0]。

举例:

生成用于聚类的数据(500 个样本,每个样本中含有2 个特征),程序代码如下:

from sklearn.datasets import make_blobs
from matplotlib import pltx,y = make_blobs(n_samples=500, n_features=2, centers=3)

接下来,通过K-Means 方法对测试数据进行聚类,形成散点图,程序代码如下:

from sklearn.cluster import KMeansy_pred = KMeans(n_clusters=4, random_state=9).fit_predict(x)
plt.scatter(x[:, 0], x[:, 1], c=y_pred)
plt.show()

运行程序,效果如下图所示:

从分析结果得知:相似的数据聚在一起,分成了4堆,也就是4类,并以不同的颜色显示,看上去更加清晰直观。


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

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

相关文章

在Qt中解决opencv的putText函数无法绘制中文的一种解决方法

文章目录 1.问题2.查阅资料3.解决办法 1.问题 在opencv中,假如直接使用putText绘制中文,会在图像上出现问号,如下图所示: 2.查阅资料 查了一些资料,说想要解决这个问题,需要用到freetype库或者用opencv…

这个超实用的门禁技巧,让办公楼安全更简单高效!

门禁监控是现代社会中不可或缺的一部分,用于确保安全和管理进出某个区域的人员。随着科技的不断发展,门禁监控已经远离了传统的机械锁和钥匙,变得更加智能化和高效。 客户案例 企业办公大楼 无锡某大型企业在其办公大楼内部部署了泛地缘科技…

我在Vscode学OpenCV 基本的加法运算

根据上一篇我们可知__图像的属性 链接:《我在Vscode学OpenCV 处理图像》 属性— API 形状 img.shape 图像大小 img.size 数据类型 img.dtype  shape:如果是彩色图像,则返回包含行数、列数、通道数的数组;如果是二值图像或者灰度…

建议收藏《2023华为海思实习笔试-数字芯片真题+解析》(附下载)

华为海思一直以来是从业者想要进入的热门公司。但是岗位就那么多,在面试的时候,很多同学因为准备不充分,与岗位失之交臂,无缘进入该公司。今天为大家带来《2023华为海思实习笔试-数字芯片真题解析》题目来源于众多网友对笔试的记录…

Windows经常提示更新怎么办?一招暂停66年,绝对靠谱!

windows10/11的更新频率非常高,也经常会修复旧bug的同时带来一些新的bug。所以有些人不喜欢系统的自动更新,总想把它禁用掉。禁用系统更新的软件有很多,不过这些方法大多是强行禁止,有时候会引来一些其它的问题。 所以为了阻止Win…

【操作系统】考研真题攻克与重点知识点剖析 - 第 1 篇:操作系统概述

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…

Web的兼容性测试主要测什么?

1.兼容性测试主要测什么? 对于兼容性测试我了解的很少,之前觉得兼容性测试,就是开发出来网站,在不同的浏览器上显示的是否正常,会不会因为浏览器不同,网站的显示样式,功能,获取的数…

Flink源码解析四之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

纠结蓝桥杯参加嵌入式还是单片机组?

纠结蓝桥杯参加嵌入式还是单片机组? 单片机包含于嵌入式,嵌入式不只是单片机。. 你只有浅浅的的单片机基础,只能报单片机了。最近很多小伙伴找我,说想要一些单片机资料,然后我根据自己从业十年经验,熬夜搞了几个通宵…

核心舱在轨飞行VR沉浸式互动体验满足大家宇宙探险的心愿

近日神州十七号载人飞船迎来发射,随着我国载人航天工程进入空间站应用与发展阶段,在轨航天探索和运维工作进入常态化阶段,然而每次出征都牵动着亿万人民的心,对航天航空的好奇和向往也越来越强烈。为了让普通人也能体验乘坐飞船上…

2.Docker基本架构简介与安装实战

1.认识Docker的基本架构 下面这张图是docker官网上的,介绍了整个Docker的基础架构,我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …

【考研数据结构代码题1】二叉搜索树的插入与查找

题目&#xff1a;请用C语言写出二叉树的二叉链表结构&#xff0c;并编写一个函数在二叉搜索树中可以搜索给定的关键字 难度&#xff1a;★ 二叉树的二叉链表结构 #include<stdio.h> #include<stdlib.h> //二叉树的结点结构 typedef struct Node{int data;//存放结…

【Linux】基本指令-入门级文件操作(三)

目录 基本指令 14 head指令 15 tail指令 管道 16 find指令 17 grep指令 18 zip&#xff06;unzip指令 19 tar指令 20 su指令 总结 基本指令 14 head指令 功能&#xff1a;在屏幕上显示文件的内容&#xff0c;默认显示前10行&#xff0c;如果加上选项-n&#xff0c;则…

vscode1.83远程连接失败

&#xff08;报错信息忘记截图了 总之卡在vscode-server.tar.gz的下载那里&#xff0c;一直404&#xff0c;删了C:\Users\Administrator\.ssh\known_hosts也不管用 看了一下vscode1.83的commitID为a6606b6ca720bca780c2d3c9d4cc3966ff2eca12&#xff0c;网友说可以通过以下网…

Miniconda 使用进阶,把它添加到右键菜单中

因为最近有写 python 的需求&#xff0c;且我是用 Miniconda 来管理本地 python 环境的&#xff0c;所以就涉及到需要频繁的进入到环境的命令行中&#xff0c;每次都需要通过官方提供的快捷方式&#xff0c;然后还要一路设置环境和路径&#xff0c;好烦呀。因为之前添加过 Wind…

材质之选:找到适合你的地毯

当谈到家居装饰时&#xff0c;地毯是一个经常被忽视的重要元素。但事实上&#xff0c;地毯在家居中扮演了至关重要的角色&#xff0c;不仅可以增加舒适感&#xff0c;还可以改善室内的整体氛围。在这篇文章中&#xff0c;我们将探讨地毯的选择、尺寸、形状和材质&#xff0c;以…

vue工程化开发和脚手架

工程化开发和脚手架 1.开发Vue的两种方式 核心包传统开发模式&#xff1a;基于html / css / js 文件&#xff0c;直接引入核心包&#xff0c;开发 Vue。工程化开发模式&#xff1a;基于构建工具&#xff08;例如&#xff1a;webpack&#xff09;的环境中开发Vue。 工程化开…

Linux(CentOS)安装MySQL教程

主要参考链接 教程 1. 准备工作 1.1 安装CentOS虚拟机 教程点击 1.2 将CentOS虚拟机设置为静态IP&#xff0c;否则你每次重启虚拟机后连接数据库都要重新查IP 教程点击 1.3 如果有安装过MySQL&#xff0c;请先卸载MySQL 教程点击 1.4 虚拟机执行命令su切换到root账号(输…

【python VS vba】(3) 在python直接调用vba脚本

目录 0 前言 1 VBA 内容 1.1 EXCEL这边VBA的内容 1.2 VBA的测试代码 2 python 调用 2.1 python 调用VBA的过程和结果 2.2 代码 0 前言 前面写了这么多&#xff0c;没想到&#xff0c;其实py是可以直接支持VBA的 python的模块import xlwings&#xff0c;可以让python直…

云上智能驾驶三维重建优秀实践

本文重点介绍火山引擎多媒体实验室三维重建技术在动态、静态场景的以及结合先进光场重建技术的原理与实践&#xff0c;帮助大家能更好的了解和认识云上智能三维重建如何服务智能驾驶领域&#xff0c;助力行业发展。 智能驾驶技术的不断发展&#xff0c;正在改变着我们的出行方式…