热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

k均值算法有哪些不足之处_K均值聚类算法(KMeans)

K-means是一种无监督学习,对未标记的数据(即没有定义类别或组的数据)进行分类。该算法的目标是在数据中找到由变量K标记的组。该算法迭代

K-means是一种无监督学习,对未标记的数据(即没有定义类别或组的数据)进行分类。 该算法的目标是在数据中找到由变量K标记的组。该算法迭代地工作基于所提供的特征,将每个数据点分配给K个组中的一个。 基于特征相似性对数据点进行聚类。 K均值聚类算法的结果是:

1.K簇的质心,可用于标记新数据

2.训练数据的标签(每个数据点分配给一个集群)

一、k-means简述

1、聚类

“类”指的是具有相似性的集合,聚类是指将数据集划分为若干类,使得各个类之内的数据最为相似,而各个类之间的数据相似度差别尽可能的大。对数据集进行聚类划分,属于无监督学习。聚类分析就是以相似性为基础,在一个聚类中的模式之间比不在同一个聚类中的模式之间具有更多的相似性。

2、K-Means

对样本集D = {x1,x2,…,xm}.K-Means算法就是针对聚类划分C = {C1,C2,…,Ck}最小化平方误差;

f995c572bb7b3ce13a0125ccaf83ef21.png

其中

30ce67b5a83f41533cd2e1df20082d10.png

是是簇Ci的均值向量。从上述公式中可以看出,该公式刻画了簇内样本围绕簇均值向量的紧密程度,E值越小簇内样本的相似度越高。

结合最小二乘法和拉格朗日原理,聚类中心为对应类别中各数据点的平均值,同时为了使算法收敛,在迭代的过程中,应使得最终的聚类中心尽可能的不变。

三、工作流程

随机选取K个样本作为聚类中心;

计算各样本与各个聚类中心的距离;

将各样本回归于与之距离最近的聚类中心;

求各个类的样本的均值,作为新的聚类中心;

判定:若类中心不再发生变动或者达到迭代次数,算法结束,否则回到第二步。

四、k-means算法的描述如下

当任意一个点的簇分配结果发生改变时,对数据集中的每个点,对每个质心,计算质心与数据点之间的距离将数据点分配到距离其最近的簇对每一个簇,计算簇中所有点的均值并将均值作为质心。

二、wine数据集的红酒K-Means聚类

导入数据

f711ec8f7965029916b51c8b46b46e6c.png

数据预处理

d08b4b35a6a473719745e77fc62be2fe.png

数据聚类

5f33ff82475f9c8f27beb7117cf143c0.png

(1)对比真实标签和聚类标签求取FMI

e5b3b7f02b9e3069c19915181f1e3d80.png

(2)在聚类数目为2~10类时,确定最优聚类数目

bfc23b689a427d9a6ab131c6171c6067.png

数据越接近1更好所以由上图可得聚类最优为3类,与k-means聚类结果相同



推荐阅读
  • 使用TabActivity实现Android顶部选项卡功能
    本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 深入了解Python中的函数定义
    本文详细探讨了Python中函数定义的核心概念,包括基本语法、不同类型的函数参数、递归函数、闭包以及匿名函数等,旨在帮助读者全面掌握Python函数的应用。 ... [详细]
  • 本文探讨了如何将个人经历,特别是非传统的职业路径,转化为职业生涯中的优势。通过作者的亲身经历,展示了舞蹈生涯对商业思维的影响。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本周三大青年学术分享会即将开启
    由雷锋网旗下的AI研习社主办,旨在促进AI领域的知识共享和技术交流。通过邀请来自学术界和工业界的专家进行在线分享,活动致力于搭建一个连接理论与实践的平台。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • LeetCode 204: 计算质数
    本题要求计算小于给定非负整数n的所有质数的数量。感谢@mithmatt为此问题提供测试案例。 ... [详细]
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 本问题涉及在给定的无向图中寻找一个至少包含三个节点的环,该环上的节点不重复,并且环上所有边的长度之和最小。目标是找到并输出这个最小环的具体方案。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
  • Irish budget airline Ryanair announced plans to significantly increase its route network from Frankfurt Airport, marking a direct challenge to Lufthansa, Germany's leading carrier. ... [详细]
  • 在执行市场篮子分析时遇到性能瓶颈,尤其是在设定频繁项集的支持度阈值为1%时。本文探讨了如何通过调整代码和参数来提高分析效率。 ... [详细]
author-avatar
钟z4z萍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有