标签:物理 min quit height 不同类 一点 lse binary node
一、定义:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类
二、距离:欧几里得度量(euclidean metric)也称欧氏距离
绝对值距离(manhattan)
Lance距离(canberra)
定性变量距离(binary)
闵可夫斯基距离(minkowski)
三、使用函数dist()求点之间的距离,可以设置不同的方法,这里设置的是欧式距离,其操作对象是数据框,结果是得到一个距离矩阵
四、聚类
1.使用的方法:
最短距离法-------single
最长距离法-------complete
中间距离法-------median
类平均法---------average
重心法-----------centroid
离差平方和法-------ward
Mcquitty相似法--------maquitty
2.对数据对聚类之前一般要对数据进行处理,这里说的处理是对数据做中心化、标准化变换,使用函数scale()
数据的中心化和标准化:
数据中心化:是指数据集中的各项数据减去数据集的均值
数据标准化:是指在中心化之后在除以数据集的标准差,即数据集中的各项数据减去数据集的均值再除以数据集的标准差
mean()是求平均值,sd()是求标准差
在R中实现数据标准化和中心化可以使用函数scale(),第一个参数是操作的对象,第二个参数是进行中心化,当为TRUE时,第三个参数是进行标准化,当为TRUE时
3.进行聚类操作使用的函数时hclust(),第一个参数时操作对象,即上述使用函数dist()求出的距离矩阵,第二个参数时设置使用的方法,比如最短距离法(single)、最长距离法(complete)等,聚类的结果是展示出它的谱系图
函数plot()是绘制图形的,针对不同的数据类型绘制不同类型的图,暂时先不介绍
步骤:
1)给出数据,一般这个过程会做数据的中心化和标准化转变
2)计算出x的距离矩阵
3)进行聚类
结果分析:从谱系图明显可以看到,1和1先聚为一类,然后3和4再聚,后来5和3、4聚,最后聚一起
问题:聚类可以聚多少类?
一般是使用rect.hculse()函数进行人为指定,所说的人为指定,是大概肉眼能判断出聚为几类,这一点不如其他的软件,这里设置k=2,即聚为两类,这里的红色线是分类线
五、聚类的谱系图:使用函数as.dendrogram(),可以通过设置参数,从而得到不同类型的谱系图
第一种:
第二种:
第三种:
edgePar 绘图参数的列表,用于边缘段和标签,
dege.root =T/F 逻辑值,如果是真的,就画一条边到根节点。
第四种:
nodepar 用于节点的绘图参数列表(见点)或默认为NULL,不在节点上绘制符号
horiz=T/F 表示树状图是否应该被水平绘制的逻辑
标签:物理 min quit height 不同类 一点 lse binary node
原文地址:https://www.cnblogs.com/YY-zhang/p/14695614.html