该【聚类分析Kmeans聚类 】是由【1354793****】上传分享,文档一共【22】页,该文档可以免费在线阅读,需要了解更多关于【聚类分析Kmeans聚类 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。2025/2/2
模式识别
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。
第三章--聚类分析
K-means聚类
主要内容
2017
K-means算法
01
2018
Matlab程序实现
02
2019
在图像分割上的简单应用
03
2020
算法的优缺点
04
2021
初始中心的选取对算法的影响
05
2022
Kernel K-means算法
06
2025/2/2
K-means聚类算法
算法描述
为中心向量c1, c2, …, ck初始化k个种子
分组:
将样本分配给距离其最近的中心向量
由这些样本构造不相交( non-overlapping )的聚类
确定中心:
用各个聚类的中心向量作为新的中心
重复分组和确定中心的步骤,直至算法收敛
2025/2/2
K-means聚类算法(续)
分组:
将样本分配给距离它们最近的中心向量,并使目标函数值减小
确定中心:
亦须有助于减小目标函数值,原因:
等式成立的充要条件:
3
2
1
4
5
2025/2/2
K-means聚类算法(续)
算法的具体过程
01
从数据集 中任意选取k个赋给初始的聚类中心c1, c2, …, ck;
02
对数据集中的每个样本点xi,计算其与各个聚类中心cj的欧式距离并获取其类别标号:
03
按下式重新计算k个聚类中心;
重复步骤2和步骤3,直到达到最大迭代次数为止。
04
2025/2/2
Matlab程序实现
function [M, j, e] = kmeans(X, K, Max_Its)
[N,D]=size(X);
I=randperm(N);
M=X(I(1:K),:);
Mo = M;
for n=1:Max_Its
for k=1:K
Dist(:,k) = sum((X - repmat(M(k,:),N,1)).^2,2)';
end
[i, j]=min(Dist, [], 2);
for k=1:K
if size(find(j==k))>0
M(k, :) = mean(X(find(j==k), :));
end
end
2025/2/2
Matlab程序实现(续)
Z = zeros(N,K);
end
fprintf('%d Error = %f\n', n, e);
Mo = M;
for m=1:N
Z(m,j(m)) = 1;
e = sum(sum(Z.*Dist)./N);
end
1
2
3
4
5
6
2025/2/2
在图像分割上的简单应用
使用K-means算法对图像进行分割。
此图为100 x 100像素的JPG图片,每个像素可以表示为三维向量(分别对应JPEG图像中的红色、绿色和蓝色通道) ;
例1:
将图片分割为合适的背景区域(三个)和前景区域(小狗);
图片:一只遥望大海的小狗;
2025/2/2
在图像分割上的简单应用(续)
分割后的效果
注:最大迭代次数为20次,需运行多次才有可能得到较好的效果。
2025/2/2
在图像分割上的简单应用(续)
例2:
注:聚类中心个数为5,最大迭代次数为10。
2025/2/2
聚类分析Kmeans聚类 来自淘豆网m.daumloan.com转载请标明出处.