【数学建模】day09-聚类分析
0.
多元分析之聚类分析。
聚类分析是一种定量方法,从数据的角度,对样本或指标进行分类,进而进行更好的分析。
分为Q型聚类和R型聚类。
1.
Q型聚类分析是对样本进行分类。有若干样本,我们把这些样本分成几类,每一类中的样本之间是“相似”的。
1)样本的相似性度量
样本之间的距离来描述样本之间的相似性。
常用的有绝对值距离、欧氏距离。使用欧氏距离必须标准化处理,但避免不了变量的多重相关性。
解决:使用马氏距离( Mahalanobis)。
式子中,x、y是来自总体Z两个样本(向量)。∑是Z的协方差矩阵。
2)类与类之间的相似性度量
如何衡量两个类之间的相似度。
常用的有:
最短距离法:两类中最近两点之间的距离。
最长距离法:两类中最远两点之间的距离。
重心法:两类数据重心的距离。
类平均法:两类所有两两点之间距离的平均。
离差平方和法:
3)Q型聚类分析以及实现
假设有w1,w2,w3…w7这些样本点,Q型聚类就是完成下图:
图中,f坐标代表“平台高度”,实际上是距离值。相同平台高度下各自分为两类。
如若分成3类,则在f3高度下,分为{w7},{w6,w5,w4},{w3,w2,w1}三类。
Q型聚类步骤:
- 1 )计算n个样本点两两之间的距离dij ,记为矩阵D = (dij)(n*n);
- 2)首先构造n个类,每一个类中只包含一个样本点,每一类的平台高度均为零
- 3)合并距离近的两类为新类,并且以这两类间的距离值作为聚类图中的平台高 度;
- 4)计算新类与当前各类的距离,若类的个数已经等于 1,转入步骤 5),否则,回 到步骤 3);
- 5)画聚类图;
- 6)决定类的个数和类。
4) MATLAB实现Q型聚类分析
相关MATLAB函数如下,需要查询下面。
5)一个使用例子:
解决:
clc,clear
a = [,;,;,;,;,];
y = pdist(a,'cityblock') %计算绝对值距离
yc = squareform(y);
z = linkage(y) %最短距离法产生聚类树 [h,t] = dendrogram(z) %画聚类图命令
T = cluster(z,'maxclust',) %把对象划分为3类
for i = :
tm = find(T == i);%返回第i类对象
tm = reshape(tm,,length(tm));%编程行向量
fprintf('第%d类对象有%s\n',i,int2str(tm));
end聚类图如下:
产生聚类树的z = linkage(y)得到:
这是一个(m-1)*3的矩阵,m是样例数。
1和2连接,平台高度是1;1和2连接后,新样例做第6点(m+j)。
3和4连接,平台高度是2;做第7点。
6和7连接,平台高度3;做第8点。
5和8连接。
若分成三类,打印结果如下:
3.
R型聚类。
R型聚类是更常用的。影响指标有若干,但这些影响因素(自变量)之间可能有相关性,把比较相关的聚成一类,只选用其中的一个因素来代表该类,从而对问题做出简化。
Q与R的对比:
Q是对样本进行聚类,通过样本之间的距离,结果是把各个样本分堆。
R是要最自变量进行聚类,通过自变量之间的相关系数(这个计算是根据样本计算的),进而对自变量之间的相关性做出分析,相关性大的自变量分在一类,结果是把自变量分堆。
1) 样本之间的距离
采用取Q型相同的方法。
2) 两类之间的距离
r为相关系数。这些操作都是基于相关系数的。
3)具体例子:
计算如下:
clc,clear
a = textread('ch.txt')
d = - abs(a); %相关系数转距离
d = tril(d); %提出d矩阵的下三角部分
b = nonzeros(d);%去掉d的0
b = b';
z = linkage(b,'complete') %最大距离,产生聚类树
y = cluster(z,'maxclust',) %变量分为2类
ind1 = find(y == );
ind1 = ind1'
ind2 = find(y == );
ind2 = ind2'
dendrogram(z) %画聚类图产生聚类图如下:
通过聚类图,可以看出,人体的变量大体可以分为两类:
一类反映人高、矮的变量, 如上体长,手臂长,前腰节高,后腰节高,总体长,身高,下体长;
另一类是反映人体 胖瘦的变量,如胸围,颈围,总肩围,总胸宽,后背宽,腰围,臀围。
【数学建模】day09-聚类分析的更多相关文章
- Python数学建模-01.新手必读
Python 完全可以满足数学建模的需要. Python 是数学建模的最佳选择之一,而且在其它工作中也无所不能. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数学 ...
- Python数学建模-02.数据导入
数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...
- Python小白的数学建模课-A1.2021年数维杯C题(运动会优化比赛模式探索)探讨
Python小白的数学建模课 A1-2021年数维杯C题(运动会优化比赛模式探索)探讨. 运动会优化比赛模式问题,是公平分配问题 『Python小白的数学建模课 @ Youcans』带你从数模小白成为 ...
- Python小白的数学建模课-03.线性规划
线性规划是很多数模培训讲的第一个算法,算法很简单,思想很深刻. 要通过线性规划问题,理解如何学习数学建模.如何选择编程算法. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛 ...
- Python小白的数学建模课-05.0-1规划
0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...
- Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评
新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...
- python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记
今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...
- 在数学建模中学MATLAB
为期三周的数学建模国赛培训昨天正式结束了,还是有一定的收获的,尤其是在MATLAB的使用上. 1. 一些MATLAB的基础性东西: 元胞数组的使用:http://blog.csdn.net/z1137 ...
- BITED数学建模七日谈之七:临近比赛时的准备工作
经过前面六天的文章分享,相信大家对数学模型的相关准备.学习都有了更新的认识,希望大家能从中有所收获,以便更高效地准备比赛和学习数学模型,本文是数学建模经验谈的最后一天:临近比赛的准备工作,希望在临近比 ...
- BITED数学建模七日谈之六:组队建议和比赛流程建议
今天进入数学建模经验谈第六天:组队建议和比赛流程建议 数学模型的组队非常重要,三个人的团队一定要有分工明确而且互有合作,三个人都有其各自的特长,这样在某方面的问题的处理上才会保持高效率. 三个人的分工 ...
随机推荐
- Luogu P3783 [SDOI2017]天才黑客
题目大意 一道码量直逼猪国杀的图论+数据结构题.我猪国杀也就一百来行 首先我们要看懂鬼畜的题意,发现其实就是在一个带权有向图上,每条边有一个字符串信息.让你找一个点出发到其它点的最短路径.听起来很简单 ...
- 单点登录SSO:图示和讲解
目录 概述 示例运行效果动画 跨域Web SSO时序图 代码截图 几个基本概念 涉及的站点和页面 重点理解:单点登录的核心步骤 敢说最准确的单点登录图示,因为: 我严格对照所画时序图的每个步骤,开发了 ...
- 显式与隐式(ExplicitAndImplicit)
显式与隐式(Explicit And Implicit) 1.概念 1.1 显式 实现的单词Explicit意思是清楚的.明确的.详述的.所以,显式的“显”是指明显且清楚的实现,相对于接口来说,就是明 ...
- Dedekind整环上的有限生成模的分类
以下内容本想载于我的代数数论初步当中,但是与整体风格不符,所以换到这里来,为了排版上的方便,在注释掉之前用截图留存. 附:参考文献
- 助教总结 -【福大软工实践-2017-2018-K班】
助教总结 -[福大软工实践-2017-2018-K班] 非常抱歉这么晚才来写总结! 助教工作 助教共发表博客39篇. 助教共点评约500条. 起步 对于常规课程的起步,通常都是在第一次课堂上由老师对课 ...
- 在k-means或kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?
曼哈顿距离只计算水平或垂直距离,有维度的限制.另一方面,欧氏距离可用于任何空间的距离计算问题. 因为,数据点可以存在于任何空间,欧氏距离是更可行的选择.例如:想象一下国际象棋棋盘,象或车所 做的移动是 ...
- p33自然同态
如何理解两个划线的地方 1.因为,所以所以ker(π|_H)=kerπ∩H=N∩H 2.gN=Ng,对任意的g 属于G 因为 N被H/N 包含 也对任意的 g 属于 HN成立 ...
- ES5中文分词(IK)
ElasticSearch5中文分词(IK) ElasticSearch安装 官网:https://www.elastic.co 1.ElasticSearch安装 1.1.下载安装公共密钥 rpm ...
- 关于js作用域问题
补充: function Foo(name,age){ this.name=name; this.age=age; this.getName=function(){ console.log(this) ...
- 在linux上安装MySQL数据库,并简单设置用户密码,登录MySQL
在新装的Centos系统上安装MySQL数据库. <p><a href="http://www.cnblogs.com/tijun/">提君博客原创< ...
















