资源简介
基于Matlab实现:
模式识别 改进的K-Means++算法 实现模式分类
代码片段和文件信息
%% --Document Description
% Created at 2019/03/21: by Feichao(Charles Fei)
% Version: V1_0
% 程序功能描述:
% 基于K-Means++算法实现二维空间模式的聚类分析
%% --初始化
clc;
clear;
close all;
%样本数据生成
Num = 100; %每个中心的样本个数
Diffusance = 0.4; %样本扩散度
x1 = Diffusance*randn(2Num) + ones(2Num); %中心点(11)
x2 = Diffusance*randn(2Num) - ones(2Num); %中心点(-1-1)
x3 = Diffusance*randn(2Num) + [ones(1Num); -ones(1Num)]; %中心点(1-1)
x4 = Diffusance*randn(2Num) + [-ones(1Num);ones(1Num)]; %中心点(-11)
X = [x1 x2 x3 x4]; %样本数据
%参数设置与初始化
Num_Data=size(X2); %样本数目
K=4; %聚类中心个数
S=zeros(KNum_Data); %保存聚类结果
D=zeros(1K); %距离
SUM=zeros(2K); %样本和
N=zeros(1K); %样本数
Z=zeros(2K); %聚类中心
Z_Updated=zeros(2K); %更新后的聚类中心
C=zeros(2K);
m=0;
n=0;
%% --初始聚类中心的选择
Z(:1)=X(:randperm(Num_Data1));
for i=2:K
D1=zeros(i-1Num_Data);
for j=1:Num_Data
for k=1:i-1
D1(kj)=pdist2(X(:j)‘Z(:k)‘‘Euclidean‘);
end
[D2(j)~]=min(D1(:j));
end
[~a]=max(D2);
Z(:i)=X(:a);
end
disp(‘初始聚类中心:‘)
disp(Z);
%% --显示原始数据
figure
scatter(X(1:)X(2:)‘k‘‘filled‘);
title(‘基于K-Means++算法的原始样本数据‘);
%% --迭代计算
figure
while(n ~= 2*K)
n=0;
SUM=zeros(2K);
N=zeros(1K);
S=zeros(KNum_Data);
for num=1:Num_Data
for k=1:K
D(k)=pdist2(X(:num)‘Z(:k)‘‘Euclidean‘); %计算距离
end
[~i]=min(D); %求最小值
for k=1:K
if(i==k)
SUM(:k)=SUM(:k)+X(:num);
N(k)=N(k)+1;
m=N(k);
S(km)=num;
%绘制散点图
if(k==1)
scatter(X(1num)X(2num)‘r‘‘filled‘);
end
if(k==2)
scatter(X(1num)X(2num)‘y‘‘filled‘);
end
if(k==3)
scatter(X(1num)X(2num)‘g‘‘filled‘);
end
if(k==4)
scatter(X(1num)X(2num)‘m‘‘filled‘);
end
hold on
end
end
end
for k=1:K
Z_Updated(:k)=SUM(:k)./N(k); %新聚类中心
end
C=Z-Z_Updated;
for i=1:2*K
if(abs(C(i))<=0.01)
n=n+1;
end
end
Z=Z_Updated;
end
scatter(Z(1:)Z(2:)‘k‘‘x‘);
title(‘基于K-Means++算法的聚类分析‘);
%结果输出
disp(‘聚类中心:‘)
disp(Z);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2879 2019-03-26 11:49 K_MeansPlusPlus.m
----------- --------- ---------- ----- ----
2879 1
- 上一篇:数值分析非线性方程二分法求根
- 下一篇:MATLAB实现图像白平衡
相关资源
- 基于颜色的聚类分割matlab
- matlab模式识别工具箱PRTOOLS及使用说明
- 用身高和/或体重数据进行性别分类的
- 模式识别与智能计算-Matlab技术实现(
- 模式识别与智能计算matlab实现 安装
- 西交大模式识别编程大作业报告+MAT
- K均值聚类算法,图像处理,GUI,mat
- 车牌识别_matlab_模式识别(MATLAB代码,
- 模式识别课程作业 基于svm的人脸识别
- 图形模式识别 matlab 圆 正方形
- 《模式识别与智能计算》MATLAB技术实
- matlab利用不变矩提取图片的形状特征
- 模式识别4个实验(matlab)
- 基于K-means算法的遥感图像分类的mat
- 基于Matlab实现的图像分割的常用算法
- 模式识别课程作业 matlab与libsvm环境
- 车牌识别Matlab代码61833
- 基于matlab的车牌识别内含matlab代码以
- 指纹识别数字图像处理+模式识别+机器
- 路标识别与提取采用聚类方法C-means
- FAST角点检测算法MATLAB程序
- 基于PCA和SVM的人脸识别 matlab程序
- 模式识别与智能计算-Matlab技术实现
- 《模式识别与智能计算:MATLAB技术实
- 稀疏非负矩阵分解及模式识别
- 虹膜识别 matlab算法
- Fisher二元线性判别 Matlab源码
- usps手写数字数据集
- [模式识别及MATLAB实现][杨杰][电子教案
- SVM实现MNIST数据集分类
评论
共有 条评论