matlab实现聚类算法

article/2025/10/21 16:06:02

simulate2020625数据集

clear;clc
load simulate2020625;k=max(subcluster(:,3));%设置聚类数目
data = subcluster(:,1:2);
cata = subcluster;
[m,n]=size(data);
c1=subcluster(:,3);
c1=c1';%% 实际聚类图
figure(1);
plot(cata(cata(:,3)==1,1),cata(cata(:,3)==1,2),'r*')
hold on
plot(cata(cata(:,3)==2,1),cata(cata(:,3)==2,2),'b*')
hold on
plot(cata(cata(:,3)==3,1),cata(cata(:,3)==3,2),'g*')
hold on
plot(cata(cata(:,3)==4,1),cata(cata(:,3)==4,2),'y*')
title('实际聚类图')
grid on;%%
pattern=zeros(m,n+1);
center=zeros(k,n);%初始化聚类中心
pattern(:,1:n)=data(:,:);%% 找到空间中距离最远两点
U = zeros(k,n);
temp = pdist(data);
temp = squareform(temp);         %%转化成两两距离矩阵。
[~,t1] = max(temp);
[~,t2] = max(max(temp));
row = t1(t2);
col = t2;
%行,列分别对应一个节点。
U(1,:) = data(row,:);
U(2,:) = data(col,:);%% 选择U集合,得初始聚类中心
record = data;
record([row col],:) = [];
N = 2;if k>2while N~=kx = 0;y = 0;rlength = size(record,1);ulength = size(U,1);point_to_centre_distance = 0;temp_u = zeros(ulength,1);for i = 1:rlengthfor j = 1:ulengthtemp_u(j) = norm(U(j,:)-record(i,:));endmin_value = min(temp_u);if point_to_centre_distance < min_valuepoint_to_centre_distance = min_value;x = i; % 记录endendfor i = 1:mif (record(x,:) == data(i,:))y = i;breakendendU(N+1,:) = data(y,:); % 所找到的中心点加入集合record(x, :) = []; % 所找到的中心点排除集合N  = N + 1;end
end%% k-means
for x=1:Ncenter(x,:)=U(x,:);
end
count = 1;
while truenew_center=zeros(N,n); %临时各类坐标distence = zeros(1,N);for x=1:mfor y=1:Ndistence(y)=norm(data(x,:)-center(y,:));end[~, col]=min(distence);%求最小的距离pattern(x,3)=col;endtemp = [];for t = 1:Ntemp = pattern(find(pattern(:,n+1)==t),1:n);ssum = zeros(1,size(temp,1));for i = 1:size(temp,1)for j = 1:size(temp,1)ssum(i) = ssum(i)+norm(temp(i,:)-temp(j,:));endend[~,col] = min(ssum);new_center(t,:) = temp(col,:);endk=0;%初始条件for y = 1:Nif norm(new_center(y,:)-center(y,:))<1e-1 %结束条件之一k=k+1;endendif k==Nbreak;elsecenter=new_center; %更新聚类中心end
end%评价指标:
index=pattern(:,3);
index=index';
[AR,RI,MI,HI]=RandIndex(c1,index)
NMI=nmi(c1,index)
% AR =
%     0.9670
% RI =
%     0.9876
% MI = 
%     0.0124
% HI =
%     0.9753
% NMI =
%     0.9483
disp('---------------------------------')
%绘图
figure(2)
plot(data(index==1,1),data(index==1,2),'r*')
hold on
plot(data(index==2,1),data(index==2,2),'b*')
hold on
plot(data(index==3,1),data(index==3,2),'g*')
hold on
plot(data(index==4,1),data(index==4,2),'y*')
title('自编写Kmeans算法图')%% 系统自带的kmeans聚类算法
[Idx,C,sumD,D]=kmeans(data,k);
Idx=Idx';
%评价指标
[AR,RI,MI,HI]=RandIndex(c1,Idx)
NMI=nmi(c1,Idx)
%绘图
figure(3)
plot(data(Idx==1,1),data(Idx==1,2),'r*')
hold on
plot(data(Idx==2,1),data(Idx==2,2),'b*')
hold on
plot(data(Idx==3,1),data(Idx==3,2),'g*')
hold on
plot(data(Idx==4,1),data(Idx==4,2),'y*')
title('matlab自带Kmeans算法图')

在这里插入图片描述


http://chatgpt.dhexx.cn/article/MEicQvH5.shtml

相关文章

K-means++聚类算法(matlab实现)

K-means聚类算法 文章目录 K-means聚类算法前言一、算法简介二、K-means算法步骤三、K-means算法matlab实现总结 前言 K-means算法&#xff1a;K-means算法是K-means算法的改进版&#xff0c;其在选择初始质心时采用了一种更加聪明的方法&#xff0c;能够有效地避免局部最优解…

MATLAB聚类分析(Cluster Analysis)

使用环境&#xff1a;MATLAB2016a、MATLAB2010a 聚类分析是一种无监督式学习&#xff0c;不像回归分析等需要Inputs 和 Targets &#xff0c;聚类分析是只通过提供一组数据实现分类的算法。下面给出本人在学习聚类分析的MATLAB程序 x15*[randn(500,1)5,randn(500,1)5]; x25*[…

matlab统计与机器学习工具箱中的7种聚类算法

1. matlab中自带聚类算法概述 本文简要概述了matlab统计和机器学习工具箱中可用的聚类方法&#xff0c;并给出了其聚类函数。在使用过程中&#xff0c;直接调用该函数即可&#xff0c;十分方便&#xff0c;不得不感慨matlab的强大。 聚类分析&#xff0c;又称分割分析或分类分…

K-mean(多维度)聚类算法(matlab代码)

申明: 仅个人小记。 Email: officeforcsdn163.com 目录 效果演示二维度三维度 k-mean 算法思想简要说明代码分析二维度k-mean代码三维度k-mean代码多维度k-mean代码功能使用示范后期函数接口改造 (借助matlab中cell结构实现)新的函数接口使用范例 小结 效果演示 二维度 (1) K…

k-Means——经典聚类算法实验(Matlab实现)

聚类算法—k-Means实验 k-平均&#xff08;k-Means&#xff09;&#xff0c;也被称为k-均值&#xff0c;是一种得到最广泛使用的聚类算法[1]. k-Means算法以k为参数&#xff0c;把n个对象分为k个簇&#xff0c;使得簇内具有较高的相似度。 实验目的 了解常用聚类算法及其优缺…

MATLAB K-means聚类的介绍与使用

K-means算法是硬聚类算法 &#xff0c;是典型的基于原型的目标函数 聚类方法的代表&#xff0c;它是数据点到原型的某种距离作为优化的目标函数&#xff0c;利用函数求极值的方法得到迭代运算的调整规则。K-means算法以偶是距离 作为相似度测度&#xff0c;它是求对应某一初…

MatLab Kmeans聚类

机器学习以及人工智能的学习需要扎实的数学功底才能走的更远&#xff0c;爬的更高&#xff0c;所以打好数学基础是关键&#xff0c;但无论工作学习都没有充足的时间去拿着书本一个字一个字的去学习了&#xff0c;这里我建议大家找几个比较靠谱入门的机器学习或者人工智能学习平…

聚类分析(二)k-means及matlab程序

1.介绍 k-means是一种常见的基于划分的聚类算法。划分方法的基本思想是&#xff1a;给定一个有N个元组或者记录的数据集&#xff0c;将数据集依据样本之间的距离进行迭代分裂&#xff0c;划分为K个簇&#xff0c;其中每个簇至少包含一条实验数据。 2.k-means原理分析 2.1工作原…

数据挖掘实验(七)Matlab实现聚类算法【clusterdata / kmeans】

本文代码均已在 MATLAB R2019b 测试通过&#xff0c;如有错误&#xff0c;欢迎指正。 另外&#xff0c;这次实验都是调用Matlab现成的函数&#xff0c;没什么技术含量。 &#xff08;一&#xff09;聚类分析的原理 聚类是将数据分类到不同的类或者簇这样的一个过程&#xff…

K-means聚类 —— matlab

目录 1.简介 2.算法原理 3.实例分析 3.1 读取数据 3.2 原理推导K均值过程 3.3 自带kmeans函数求解过程 完整代码 1.简介 聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程&#xff0c;聚类就是一种发现这种内在结构的技术&#xff0c;聚类技术经常被称为…

聚类分析的Matlab 程序—系统聚类(附有案例分析)

聚类分析的Matlab 程序—系统聚类 (1)计算数据集每对元素之间的距离,对应函数为pdistw. 调用格式&#xff1a;Ypdist(X),Ypdist(X,’metric’), Ypdist(X,’distfun’),Ypdist(X,’minkowski’,p) 说明&#xff1a;X是m*n的矩阵&#xff0c;metric是计算距离的方法选项&…

如何运用MATLAB实现K-MEANS聚类分析

由于自己最近在学习聚类分析&#xff0c;也算是一个入门&#xff0c;相当于将自己这段时间的学习成果进行一个总结&#xff0c;分享给更多打算学习聚类分析或者需要用到聚类分析的同学们~ 在了解K-MEANS聚类分析之前&#xff0c;我们首先明确聚类的含义&#xff0c;聚类是将数…

Matlab实现Kmeans聚类算法

1.Kmeans聚类算法简介 kmeans聚类算法是一种迭代求解的聚类分析算法。其实现步骤如下&#xff1a; (1) 随机选取K个对象作为初始的聚类中心 (2) 计算每个对象与各个种子聚类中心之间的距离&#xff0c;把每个对象分配给距离它最近的聚类中心。 (3) 聚类中心以及分配给它们的对象…

k-means算法实例(聚类分析)matlab实现

例子如下&#xff1a; 假设数据挖掘的任务是将如下的8个点&#xff08;用&#xff08;x&#xff0c;y&#xff09;代表位置&#xff09;聚类为3个簇。 距离是欧氏距离。假设初始我们选择&#xff0c;和分别为每个簇的中心&#xff0c;用k-均值算法给出&#xff1a; a)在第一轮…

MATLAB层次聚类分析

实验题目 给出六个民族的出生死亡率&#xff0c;和他们的平均寿命&#xff0c;如下表所示 出生死亡率&#xff08;%&#xff09;平均寿命15.8070.5927.4467.1438.1165.48410.2158.8859.5159.8869.8160.47 MATLAB代码 %聚类分析 %步骤 %1.样本标准化 %2.计算各个样本之间的距…

matlab之聚类分析

文章目录 1.原理&#xff1a;2.数据&#xff1a;3.效果图&#xff1a;4.分类结果&#xff1a;5.分类代码&#xff1a; 1.原理&#xff1a; 聚类分析是根据在数据中发现的描述对象及其关系的信息&#xff0c;将数据对象分组。目的是&#xff0c;组内的对象相互之间是相似的&…

Matlab聚类分析(Kmeans)

提示&#xff1a;本文为记录学习聚类分析的一个过程&#xff0c;仅供参考&#xff0c;有不足之处还望提出 目录 前言一、原始数据二、数据处理与结果输出1.标准化与提取2.可视化3.簇数判别4.最终输出 总结 前言 本次样本中的片段数据涉及到多个故障原因&#xff0c;目的在于通…

Python语音信号处理

个人博客&#xff1a;http://www.chenjianqu.com/ 原文链接&#xff1a;http://www.chenjianqu.com/show-44.html 语言信息是多种信息的混合载体 &#xff0c;其中包括内容信息、说话人信息和情感信息。 本文介绍了一些语音的基本知识&#xff0c;和使用Python进行处理。 时域…

语音信号处理1 ----- 基础知识

语音信号处理1 ----- 基础知识 1. 语音信号处理的目的&#xff1a;2. 语音发音和感知系统2.1 语音发音系统2.2 语音感知系统&#xff08;听觉系统&#xff09;2.2.1 听觉系统2.2.2 听觉特性 2.3 语音信号生成的数学模型 3. 语音基本概念及参数4. 语音信号数字化处理参考 1. 语音…

语音信号处理入门入籍和课程推荐

欢迎关注我的公众号&#xff0c;微信搜一搜【音频信号处理那些事儿】获取更多信息。 由于看网上关于语音信号处理的入门书籍和课程推荐的比较少&#xff0c;同时相关的领域人员也比较少&#xff0c;所以建了这个公众号&#xff0c;欢迎各位同仁指正交流&#xff0c;谢谢。 本…