数据中心化与标准化变换:scale函数
scale(x, center = TRUE, scale = TRUE)
其中x是样本构成的数据矩阵,center为逻辑变量,表示对数据进行中心化变换,scale也为逻辑变量,表示对数据进行中心化变换
距离计算函数dist:
dist(x,method=“euclidean”,diag=FALSE,upper=FALSE,p=2)
其中x是样本矩阵或者数据框。
method表示计算哪种距离,所定义的距离有:
Euclide距离:“euclidean”
Chebyshev距离:“maxinum”
绝对值距离:“manhattan”
Lance距离:“canberra”
Minkowski距离:“minkowski”
定性变量距离:"binary"
diag 为TRUE的时候给出对角线上的距离。
upper为TURE的时候给出上三角矩阵上的值。
注: (1)欧氏距离:可以简单的描述为多维空间的点点之间的几何距离,但欧式距离通常采用的是原始数据,而并非规划化后的数据,不能消除量纲的影响,所以其优势在于新增对象不会影响到任意两个对象之间的距离。
(2)切比雪夫距离:切比雪夫距离主要表现为在多维空间中,对象从某个位置转移到另外一个对象所消耗的最少距离,因此可以简单的描述为用一维属性决定某对象属于哪个簇。
(3)曼哈顿距离:如果欧式距离看成是多维空间对象点点的直线距离,那么曼哈顿距离就是计算从一个对象到另一个对象所经过的折线距离,但曼哈顿距离取消了欧式距离的平方,因此使得离群点的影响减弱。
层次聚类
hclust函数提供了系统聚类的计算,plot函数可画出系统聚类的树形图(或称为谱系图)
hclust(d, method = “complete”, members=NULL)
其中d是由"dist"构成的结构,method是系统聚类的方法(缺省是最长距离法),其参数有:
最短距离法:“single”
最长距离法:“conmplete”
中间距离法:“median”
Mcquitty相似法:“mcquitty”
类平均法:“average”
重心法:“centroid”
离差平方和法:“ward”
plot(x, labels = NULL, hang = 0.1,
axes = TRUE, frame.plot = FALSE, ann = TRUE,
main = “Cluster Dendrogram”,
sub = NULL, xlab = NULL, ylab = “Height”, …)
其中x是由hclust函数生成的对象,hang是表明谱系图中各类所在的位置,当为负值时谱系图中的类从底部画起。
例子:x<-c(1,2,6,8,11); dim(x)<-c(5,1); d<-dist(x) #输入数据,生成距离结构
hc1<-hclust(d, “single”); hc2<-hclust