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

article/2025/10/21 18:41:51

本文代码均已在 MATLAB R2019b 测试通过,如有错误,欢迎指正。

另外,这次实验都是调用Matlab现成的函数,没什么技术含量。

(一)聚类分析的原理

聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。
聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。聚类分析所使用方法的不同,常常会得到不同的结论。不同研究者对于同一组数据进行聚类分析,所得到的聚类数未必一致。
从实际应用的角度看,聚类分析是数据挖掘的主要任务之一。而且聚类能够作为一个独立的工具获得数据的分布状况,观察每一簇数据的特征,集中对特定的聚簇集合作进一步地分析。聚类分析还可以作为其他算法(如分类和定性归纳算法)的预处理步骤。

(二)matlab中聚类的实现算法

方法一:直接聚类,利用clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法,该方法的使用者无需了解聚类的原理和过程,但是聚类效果受限制。

方法二:层次聚类,该方法较为灵活,需要按步骤实现聚类过程,具体需要进行如下过程处理:
(1)计算数据集合中样本两两之间的相似性,用pdist函数计算样本之间的距离;
(2)用linkage函数定义类间距离;
(3)用cluster函数创建聚类。

方法三:划分聚类,包括K均值聚类和K中心聚类,同样需要系列步骤完成该过程,要求使用者对聚类原理和过程有较清晰的认识。
K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得所有类内对象与该类中心点之间的距离和最小。
Matlab自带函数:Y=kmeans(X, K)。

(三)利用matlab实现聚类算法

问题描述:
参考表中16*13列的矩阵,利用matlab中提供的几种方法实现聚类的过程。

代码:

clear; clc;data=[
26	27	25061	23416	2241	1915	50.25	31.15	14.96	4.63	12.43	6.39	8.86
20	22	20473	19887	1918	1765	80.47	23.34	13.24	6.26	11.89	6.66	7.06
28	42	27264	29153	2378	1914	99.69	42.14	19.94	8.36	15.46	6.84	6.96
26	37	25436	26064	2703	2110	112.76	45.37	24.13	7.55	17.84	9.26	7.38
27	26	22083	19968	1881	1589	85.83	32.21	13.21	5.68	14.58	6.62	6.87
22	28	14091	12885	1365	1676	56.17	19.85	12.2	3.98	14.09	9.46	7.48
20	40	15167	23245	1313	1901	142.15	36.43	16.72	4.65	24.02	7.19	5.3
13	32	13099	24426	1269	1837	110.61	17.86	18.49	4.31	13.64	7.57	4.51
16	39	18774	26091	1253	1642	131.8	23.7	19.04	7.5		12.62	7.3		5.39
21	39	14955	27698	1223	1581	145.98	28.1	20.26	8.72	18.79	7.32	5.7
48	121	45156	58538	3917	3666	381.97	48.79	37.78	9.37	10.8	6.45	3.65
48	126	44532	29648	4103	2606	300.64	38.44	21.95	3.96	8.63	7.4		3.24
83	89	60484	69479	5585	5309	475.66	90.58	50.65	17.37	14.97	7.29	7.69
30	59	20921	22865	2269	1757	146.52	20.16	16.02	2.15	9.64	7.01	2.98
51	98	36912	50143	2691	2775	322.98	36.85	30.49	8.44	9.98	6.08	3.12
65	128	52563	40990	4454	3099	353.36	59.7	33.39	1.92	11.36	8.15	0.77
];X=mapminmax(data',0,1)'; % 按列最小最大规范化到[0,1]%% (1)直接聚类
T1=clusterdata(X,0.2); % 如果0<cutoff<2,则当不一致系数大于cutoff时,分到不同类()中
T2=clusterdata(X,3); % 如果cutoff是一个≥2的整数,则形成的不同类别数为cutoff%% (2)逐步聚类
Y=pdist(X); % 计算矩阵X中样本两两之间的距离,但得到的Y是个行向量
D=squareform(Y); % 将行向量的Y转换成方阵,方便观察两点距离(方阵的对角线元素都是0)
Z=linkage(Y); % 产生层次聚类树,默认采用最近距离作为类间距离的计算公式
dendrogram(Z); % 图示层次聚类树
T3=cluster(Z,4); % 在层次聚类树的基础上生成指定数目的类,cluster(Z,4)表示生成4%% (3)用k均值方法聚类
T4=kmeans(X,5); % 直接调用kmeans函数,kmeans(X,5)表示生成5

最小最大规范化结果:

在这里插入图片描述

T1、T2、T3、T4变量的取值:

在这里插入图片描述
T3的层次聚类树:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/8hTEOfQn.shtml

相关文章

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;谢谢。 本…

前端语音信号处理

1、语音活动检测 语音活动检测&#xff08;Voice Activity Detection&#xff0c; VAD&#xff09;用于检测出语音信号的起始位置&#xff0c;分离出语音段和非语音&#xff08;静音或噪声&#xff09;段。VAD算法大致分为三类&#xff1a;基于阈值的VAD、基于分类器的VAD和基于…

语音信号处理及特征提取

1.信号处理基础 模拟信号->数字信号转化 步骤&#xff1a;采样和量化 奈奎斯特定律 &#xff1a;采样频率大于信号中最大频率的二倍 即在原始信号的一个周期中&#xff0c;至少要采样两个点&#xff0c;才能有效杜绝频率混叠问题。 信号进行离散傅里叶变换的条件&#x…

MATLAB语音信号处理系统GUI

基于MATLAB的语音信号处理 【摘 要】 Matlab语音信号处理是指利用matlab软件对音频信号进行读取&#xff0c;并对音频信号进行采样分析及离散傅里叶变换&#xff0c;以方便对其在频域上进行调制滤波等相关的操作。本次实验在提取音频信号后会对该信号使用在MATLAB软件中设计的…

《语音信号处理》 语音识别章节 读书笔记

两本书&#xff0c;《语音信号处理》赵力编和《语音信号处理》韩纪庆编。强烈推荐韩纪庆版本&#xff0c;知识点很全面&#xff0c;可以作为语音识别的入门中文书籍&#xff0c;章节很也短&#xff0c;很快就入门了。 P34 HMM是一个双内嵌式随机过程&#xff0c;由两个随机过程…

基于MATLAB的语音信号处理系统的设计

目 录 摘 要 I Abstract II 1 绪论 1 2 语音信号处理系统设计方案 2 2.1MATLAB的说明 2 2.2系统框架及实现流程图 2 2.2.1系统框架&#xff1a; 2 2.2.2系统流程图&#xff1a; 3 2.3语音信号处理相关原理知识 3 2.3.1语音信号的录入与打开 3 2.3.2采样位数和采样频率 3 2.3.3…

语音信号处理的一些基础知识

人耳的听觉掩蔽效应 一般人可以感觉到20Hz-20kHz&#xff0c;强度为5dB-130dB。 人耳的掩蔽效应&#xff1a;在一个强信号附近&#xff0c;弱信号将变得不可闻&#xff0c;被掩蔽掉了。被掩蔽的不可闻信号的最大声压级称为掩蔽门限或者掩蔽阈值。 语音信号生成的模型 理想的模…

语音信号处理概念

语音交互 你知道苹果手机有几个麦克风吗&#xff1f; 语音交互&#xff08;VUI&#xff09;是指人与人/设备通过自然语音进行信息传递的过程。 语音交互的优势&#xff1a; 输入效率高。语音输入的速度是传统键盘输入方式的3倍以上。例如&#xff1a;语音电视选台、远场语音交…

python做语音信号处理

作者&#xff1a;凌逆战 时间&#xff1a;2019年11月1日 博客园地址&#xff1a;python做语音信号处理 - 凌逆战 - 博客园 音频信号的读写、播放及录音 python已经支持WAV格式的书写&#xff0c;而实时的声音输入输出需要安装pyAudio(PyAudio: PortAudio v19 Python Bindings…

语音信号处理知识点

语音信号处理过程的总体结构&#xff1a; 语音输入-->预处理-->数字化-->特征提取 预处理&#xff1a;对信号适当放大和增益控制&#xff0c;并进行反混叠滤波来消除工频信号干扰 数字化&#xff1a;进行A/D转换 特征提取&#xff1a;用反映语音信号特点的若干参数…