【算法周】人以类聚咋个聚!K-means了解一下~(下篇)

k-means算法(欧式距离) 无聊时写个k-means 采用欧式距离,进行分类,随机n个三维(a,b,c)点,聚类成k类 import java.util.*; public class KMeans { public static void main(String[] args){ //K-Means ,首先随机生成n个点 int n = 20; int k = ... 阅读详情

欢迎关注哈希大数据微信公众号《哈希大数据》

接上篇

4.K-Means距离计算优化elkan K-Means

在传统的K-Means算法中,我们在每轮迭代时,要计算所有的样本点到所有的质心的距离,这样会比较的耗时。那么,对于距离的计算有没有能够简化的地方呢?elkan K-Means算法就是从这块入手加以改进。它的目标是减少不必要的距离的计算。那么哪些距离不需要计算呢?

elkan K-Means利用了两边之和大于等于第三边,以及两边之差小于第三边的三角形性质,来减少距离的计算。

第一种规律是对于一个样本点xx和两个质心μj1,μj2。如果我们预先计算出了这两个质心之间的距离D(j1,j2)D(j1,j2),则如果计算发现2D(x,j1)≤D(j1,j2),我们立即就可以知道D(x,j1)≤D(x,j2)。此时我们不需要再计算D(x,j2)D(x,j2),也就是说省了一步距离计算。

第二种规律是对于一个样本点x和两个质心μj1,μj2。我们可以得到D(x,j2)≥max{0,D(x,j1)−D(j1,j2)}。这个从三角形的性质也很容易得到。

利用上边的两个规律,elkan K-Means比起传统的K-Means迭代速度有很大的提高。但是如果我们的样本的特征是稀疏的,有缺失值的话,这个方法就不使用了,此时某些距离无法计算,则不能使用该算法。

5.大样本优化Mini Batch K-Means

  在统的K-Means算法中,要计算所有的样本点到所有的质心的距离。如果样本量非常大,比如达到10万以上,特征有100以上,此时用传统的K-Means算法非常的耗时,就算加上elkan K-Means优化也依旧。在大数据时代,这样的场景越来越多。此时Mini Batch K-Means应运而生。

顾名思义,Mini Batch,也就是用样本集中的一部分的样本来做传统的K-Means,这样可以避免样本量太大时的计算难题,算法收敛速度大大加快。当然此时的代价就是我们的聚类的精确度也会有一些降低。一般来说这个降低的幅度在可以接受的范围之内。

在Mini Batch K-Means中,我们会选择一个合适的批样本大小batch size,我们仅仅用batch size个样本来做K-Means聚类。那么这batch size个样本怎么来的?一般是通过无放回的随机采样得到的。

为了增加算法的准确性,我们一般会多跑几次Mini Batch K-Means算法,用得到不同的随机采样集来得到聚类簇,选择其中最优的聚类簇。

6.K-Means与KNN

初学者很容易把K-Means和KNN搞混,两者其实差别还是很大的。

K-Means是无监督学习的聚类算法,没有样本输出;而KNN是监督学习的分类算法,有对应的类别输出。KNN基本不需要训练,对测试集里面的点,只需要找到在训练集中最近的k个点,用这最近的k个点的类别来决定测试点的类别。而K-Means则有明显的训练过程,找到k个类别的最佳质心,从而决定样本的簇类别。

当然,两者也有一些相似点,两个算法都包含一个过程,即找出和某一个点最近的点。两者都利用了最近邻(nearest neighbors)的思想。

7.K-Means小结

K-Means是个简单实用的聚类算法,这里对K-Means的优缺点做一个总结。

K-Means的主要优点有:

1)原理比较简单,实现也是很容易,收敛速度快。

2)聚类效果较优。

3)算法的可解释度比较强。

4)主要需要调参的参数仅仅是簇数k。

K-Means的主要缺点有:

1)K值的选取不好把握

2)对于不是凸的数据集比较难收敛

3)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效

4) 采用迭代方法,得到的结果只是局部最优。

5) 对噪音和异常点比较的敏感。


利用 python 编写 K-Means聚类算法 利用 python 实现 K-Means聚类 k-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。 k个初始类聚类中心点的选取对聚类结果具有较大的影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。.. 阅读详情

相关推荐

什么是K-means聚类算法

K-means 聚类算法的聚类过程,可以看成是不断寻找簇的质心的过程,这个过程从随机设定 K 个质心开始,直到找到 K 个真正质心为止。第一步,既然现在有了 K 个质心,对于其他数据点来说,根据其距离哪个质心近就归为哪个簇的办法,可以聚成 K 个簇。但请注意,这只是第一步,并不是最后完成聚类的结果;第二步,对于聚成的 K 个簇,需要重新选取质心。这里运用了多数表决原则,根据一个簇内所有样本点各自的维度值来求均值,得到该簇的新的坐标值;第三步是生成新的质心,其实就是重复上述过程。

weixin_66519663的博客 1548

基于pHash图像特征的图像聚类—Kmeans算法—Python实现

基于pHash图像特征的图像聚类—Kmeans算法—Python实现基于图像phash特征通过KMeans聚类算法实现图像聚类,通过熵来进行对结果的评估,顺便用PCA降维特征来可视化聚类结果(1)环境Python3.5,数据集cifar10 可以参考http://www.cs.toronto.edu/~kriz/cifar.html(2)Kmeansk-means是一种非常常见的聚类算法,在处理聚...

weixin_36913190的博客 8614

K-means算法

简介   K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。   k个初始类聚类中心点的选取对聚类结果具有较大的      公式 影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一

Eason 1959

K-means Hashing: Learning Binary Compact Codes论文理解

K-means Hashing: anAffinity-Preserving Quantization Method for Learning Binary Compact Codes论文理解: 1.概述 使用不同距离计算的方法划分两大流派: •       Hamming-basedmethods  (LSH) •        lookup-based methods (vec

liuheng0111的博客 2244

AI 赋能测试全生命周期:多 Agent 协同的自动化提效方案

本文提出了一种基于Coze平台的多Agent协同测试解决方案,旨在解决软件测试中PRD解析不清晰、测试点覆盖不全、用例编写效率低、代码生成耗时等痛点。通过PRD优化、测试点生成、测试用例生成和单元测试框架生成四个Agent的协同工作,结合Cursor工具实现从需求到代码的全链路自动化。以电商平台登录模块为例,展示了从模糊PRD到标准化测试用例和可执行Java单元测试代码的完整转化流程。该方案通过AI赋能显著提升测试效率,减少人工干预,实现测试覆盖率≥95%,为快速迭代的软件研发提供了高效的测试自动化支持。

QINJIEEE的博客 1102

RPA实战-UiPath自动化处理Outlook邮件附件全流程解析

本文详细解析了如何使用UiPath实现Outlook邮件附件的自动化处理全流程,涵盖环境配置、核心流程实现、高级功能扩展及性能优化技巧。通过RPA技术,企业可大幅提升邮件附件处理效率,减少人工操作错误,适用于财务、物流等多个场景。

weixin_33701251的博客 427

K-means hashing: An affinity-preserving quantization method for learning binary compact codes论文理解

本篇论文[1]是微软研究院的何凯明等人提出,何凯明在微软2015年一年参与发表5篇CVPR,还有好多其他高质量论文,这篇论文是其2013年CVPR上发表的一篇。下面进入正题。一、问题提出ANN检索方法中,向量量化和乘积量化方法是基于查找表的,查找表是放在内存中的。基于hamming距离的方法检索速度快,1.5ms内可以扫描完1百万64bit的hamming码,但是检索结果又没有基于查找表的好。于是何

CHIERYU的专栏 3163

UE5.4像素流送实战:GPU驱动、WebRTC与系统级调优全解析

像素流送是将实时3D渲染画面通过WebRTC编码推流至浏览器的关键技术,其本质是GPU硬件编码(如NVENC)与低延迟网络传输(UDP+BBR)的深度协同。理解其原理需跨越图形API(Vulkan/DX12)、实时音视频(H.264/H.265)、WebRTC信令与NAT穿透四大技术层。技术价值在于突破终端算力限制,支撑远程工业仿真、云VR看房等高交互场景;但落地难点集中于基础设施层——如NVIDIA驱动与UE5.4.3的CUDA Toolkit 12.2兼容性、Linux内核TCP/UDP参数调优、GPU

weixin_32943857的博客 616

深入浅出聚类算法之k-means算法

k-means是一个十分简单的聚类算法,它的思路非常简明清晰,所以经常拿来当做教学。下面就来讲述一下这个模型的细节操作。 内容 模型原理 模型收敛过程 模型聚类个数 模型局限 1. 模型原理 将某一些数据分为不同的类别,在相同的类别中数据之间的距离应该都很近,也就是说离得越近的数据应该越相似,再进一步说明,数据之间的相似度与它们之间的欧式距离成反比。这就是k-means模型的假设。 ...

星影L的博客 5万+

SPSS&Mplus—共同方法偏差(Common Method Bias)控制与检验

共同方法偏差(Common Method Bias)的控制方法:程序控制(Procedural)和统计控制(Statistical)。

m0_54401011的博客 1万+

强化学习:在智能交通系统中的应用

作者:禅与计算机程序设计艺术 这篇文章将探索如何利用强化学习(RL)这一强大的机器学习方法,在智能交通系统中实现自动驾驶、优化路线规划和提高道路安全等方面的突破。RL通过让智能体与环境互动并从这些互动中学习,从而解决复杂的决策过程问题,这正是现代智能交通系统所需要的。 背景介绍 随着城市化进程的加速,交通拥堵、能源消耗和交通事

AI天才研究院 1120

【算法周】人以类聚咋个聚!K-means了解一下~(上篇)

欢迎关注哈希大数据微信公众号《哈希大数据》上一周我们给大家讲了四篇机器学习的扫盲篇,把机器学习需要的一些常识以及需要的计算机环境理了一遍,这一周我们的系列名称是【算法周】!!毕竟算法是机器学习的灵魂嘛~~今天我们给大家介绍算法的Chaper1——K-means~ 由于篇幅较长本次介绍分为上下两篇K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。K-Means...

HashData2018的博客 433

【WebRTC】【Unity】Unity Web RTC1-Unity中简单实现远程画面

平台:基本常用平台包括安卓,苹果(max和IOS),Windows64,Linux都行。10. 注意,如果从移动设备浏览器连接服务,信令服务器的SSL证书一定要先设好。想要在Unity中实现实时远程桌面,找到了Render Streaming这个手段,本篇介绍相应的使用方法和实例。8. 打开电脑浏览器,地址栏输入http://127.0.0.1,点击Receiver Sample。新建Unity项目,模板选Third Person,Project Name随意。启动App,控制台出现如下信息表示成功。

每日出拳老爷子的博客 2518

K-Means及K-Means++算法Python源码实现

K-Means及K-Means++算法Python源码实现

全性保真,不以物累形。 8374

【异常】OpenClaw报错 400 Total tokens of image and text exceed max message tokens. Request

OpenClaw报错400(Token超限)解决方案摘要 该报错因文本/图片总Token数超过模型限额导致,常见于多轮对话累积或单次请求过大。提供三级解决方案: 应急处理:输入"/new"指令清空会话历史,立即重置Token计数(90%问题可解决) 折中方案:保留历史对话前提下,通过精简当前输入、删除早期无关对话或拆分请求来压缩Token 专属处理:单次请求超限时,拆分长文本为2000字以内段落,或分批次上传降低分辨率图片 长期预防建议定期使用"/new"开启新会话,

奶爸的编程之路,也就一周冷个三天 1391

CDD数据库文件制作(二)——DTC配置

1.DTC库 2.新建DTC DTC相关介绍:https://blog.youkuaiyun.com/LOVE135149/article/details/122565443 ① 选择DTC数据库 ② 点击新建DTC ③ DTC参数编辑 3.将DTC库中的DTC加载到Variant中 找到Fault Memory的DTC Table,鼠标放在DTC Table区域,右键点击选择Copy … Reference from Available DTCs…,即可将DTC库中的故障码加载至Variant中。 虽然选择Co

LOVE135149的博客 1万+

K-Means(聚类)

说到聚类,应先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。 分类:分类其实是从特定的数据中挖掘模式,作出判断的过程。比如Gmail邮箱里有垃圾邮件分类器,一开始的时候可能什么都不过滤,在日常使用过程中,我人工对于每一封邮件点选“垃圾”或“不是垃圾”,过一段时间,Gmail就体现出一定的智能,能够自动过滤掉一些垃圾邮件了。这是因为在点选的过程中...

https://blog.youkuaiyun.com/sinat_36710456 14万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【机器学习17】聚类K-MEANS和DBSCAN算法详解

聚类算法详解前言一、K-MEANS算法1.基本流程2.优缺点二、DBSCAN算法总结 前言 前面已经介绍了决策树模型和集成学习模型等内容,无论使用它两用来做回归还是分类任务都是有一个预定对比的y值(也就是标签),如果数据中没有这个标签了,只是一群离散的值,该怎么处理呢?这就涉及到本次梳理的内容了,也就是聚类问题(属于无监督,没有预定对比的条件了),最终目的要是把相似的东西分到一组,主要的难点在于如何对创建的模型进行评估和参数调整,因为没有y了,之前的那些评估的方法也自然就不适用了,本次梳理将详细地介绍相关的

lys_828的博客 7508

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

K-means的改进

前言 k-means算法是数据挖掘十大经典算法之一,已出现了很多的改进或改良算法。例如 1、对k的选择可以先用一些算法,分析数据的分布,如重心和密度等,然后选择合适的k。 2、有人提出了二分k均值(bisecting k-means)算法,它对初始的k个质心的选择就不太敏感。 3、基于图划分的谱聚类算法,能够很好地解决非凸数据的聚类。 一、Canopy算法配合初始聚类 二、K-means++ ...

chbxw 1万+

数据挖掘-K-Means算法

微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路 今天说聚类,但是必须要先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。 分类其实是从特定的数据中挖掘模式,作出判断的过程。比如Gmail邮箱里有垃圾邮件分类器,一开始的时候可能什么都不过滤,在日常使用过程中,我人工对于每一封邮件点选“垃圾”或“不是垃圾”,过一段时间,Gmail就体现出一定的智能,能够自动过滤掉一些垃圾邮件了。这是因为在点选的过程中,其实是给每一条邮件打了一个“标签”,这个标签只有

二十同学 5万+

K-Means聚类算法

聚类算法是传统机器学习算法中比较重要的一个算法,也是工程项目当中一个比较常用的算法。

m0_63260018的博客 4149

全网最通俗易懂的聚类算法!嘿,来聚个类!

简单易懂,图解聚类算法

Jack-Cui 1万+

K-means(K-均值)算法

容易理解,聚类效果不错,虽然是局部最优, 但往往局部最优就够了;原理简单,实现方便,收敛速度快;处理大数据集的时候,该算法可以保证较好的伸缩性;当簇近似高斯分布的时候,效果非常不错;算法复杂度低;聚类效果较优;模型的可解释性较强;调参只需要调类数k。

m0_62110645的博客 5173

K-means 算法原理以及实现过程

K-means是一种经典无监督聚类算法,通过迭代将数据划分为K个簇,使簇内相似度高、簇间差异大。算法流程包括初始化中心点、分配数据点、更新中心和迭代优化。K值选择是关键,可采用肘部法则(SSE)或K-means++优化初始质心位置。评估指标包括簇内平方和(SSE)和轮廓系数,后者能综合衡量内聚性与分离性。轮廓分析通过可视化各簇轮廓系数的分布情况,更直观评估聚类质量。代码示例展示了如何实现K-means及评估不同K值的效果。

m0_74993985的博客 1881

简述 K-means聚类算法

机器学习算法主要分为两大类:有监督学习和无监督学习,它们在算法思想上存在本质的区别。有监督学习,主要对有标签的数据集(即有“参考答案”)去构建机器学习模型,但在实际的生产环境中,其实大量数据是处于没有被标注的状态,这时因为“贴标签”的工作需要耗费大量的人力,如果数据量巨大,或者调研难度大的话,生产出一份有标签的数据集是非常困难的。再者就算是使用人工来标注,标注的速度也会比数据生产的速度慢的多。因此要想对没有被标注的数据进行分类,就要使用无监督学习算法。常见的无监督学习算法,包括 K-means 聚类算法、均

weixin_47906106的博客 7416
上一篇: 【算法周】人以类聚咋个聚!K-means了解一下~(上篇)
下一篇: 【算法周】光说不练都是假的!K-means实践篇来啦~
哈希大数据
博客等级 码龄9年 331粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值