【K-means算法】matlab代码实例学习
1.
MATLAB函数Kmeans
使用方法:
Idx=Kmeans(X,K)
[Idx,C]=Kmeans(X,K)
[Idx,C,sumD]=Kmeans(X,K)
[Idx,C,sumD,D]=Kmeans(X,K)
[…]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)
各输入输出参数介绍:
X: N*P的数据矩阵,N为数据个数,P为单个数据维度
K: 表示将X划分为几类,为整数
Idx: N*1的向量,存储的是每个点的聚类标号
C: K*P的矩阵,存储的是K个聚类质心位置
sumD: 1*K的和向量,存储的是类间所有点与该类质心点距离之和
D: N*K的矩阵,存储的是每个点与所有质心的距离
https://blog.csdn.net/wys7541/article/details/82153844
2.
输入:聚类的个数K,数据集,样本距离计算依据
输出:K个聚类
https://blog.csdn.net/sinat_38648388/article/details/83896131
3.
1.仅适合于数值属性的数据。
2.对正态分布(高斯分布)数据聚类效果最佳。
方法:
1. 从D中N个对象任意选择k个对象作为初始簇中心;
2. 根据欧氏距离,依次比较其余每个对象与各个簇中心的距离;选择距离最近的簇,依次把N个对象划分到k个簇中;
3. 完成第一次划分后,重新计算新的簇中心即均值,然后重新划分数据对象,直到新的簇中心不再发生变化。
https://blog.csdn.net/qiu1440528444/article/details/80611942
4.% 输入: data, 为一个 矩阵 M×N, 表示样本集,其中M表示共有M个样本, N表示每一个样本的维度;5.% k_value, 表示聚类的类别数目;
% 输出: output, 是一个列向量 M×1,表示每一个样本属于的类别编号;
https://www.cnblogs.com/yinheyi/p/6132362.html
5.
https://www.cnblogs.com/tiandsp/p/3040883.html
6.
https://blog.csdn.net/qq_20936739/article/details/78342882
7.
1,kmeans的k是必须已知的,也就是我必须预先知道分成几类
2,虽然你给定的是K类,但是我最终是有可能跑出来的类数小于初始设定的k,虽然每一个聚类中心都经过初始化,但是最终有的聚类中心可能会不包含一个点,那么这个聚类中心相当于可以省去,即分成k-1类(讲道理这是一件好事,说明原来我认为需要分5类,现在程序跑出来发现4类是最好的,这就达到了处理数据的目的,但是这并不是说我k随便给,最终结果就是最优解,很可能3类是最优,但是4类也能分,但是5类就很难分了,具体比如下面的一个例子) 。
(后来的注释: 但是空聚类也有处理方法,就是聚类中心替换为当前距离任意聚类中心最远的点)
3,数据可以是任意维度,修改的仅仅是求距离的方式。
https://blog.csdn.net/fengsigaoju/article/details/52167802
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)