聚类
距离(点和点、类和类)
相关系数
层次聚类法
K-means聚类法
聚类(“物以类聚,人以群分”)
聚类是一种无监督的学习,使用聚类不需要提前被告知要划分的组是什么样的,甚至在我们不知道找什么时就自动完成分组。
根据样本点的几何特征完成分类
距离
距离————样本(点)之间相似程度
闵可夫斯基距离(Minkowski)
棋盘距离(曼哈顿距离)
欧式距离
切比雪夫距离(Chebyshev)
Lance距离
二进制距离
m1: 1-1配对的数量
m0: 0-0配对的数量
m2: 不配对的数量
d = m2/(m1+m2)
R语言
dist函数
dist(x,method = “euclidean”,diag = F,upper = F,p = 2)
其中x是样本矩阵或者数据框。
method参数
euclidean:欧式距离
maximum:切比雪夫距离
manhattan:曼哈顿距离
canberra:Lance距离
minkowski:闵可夫斯基距离,这时参数p定义阶数
binary:二进制距离
diag 为TRUE的时候给出对角线上的距离。
upper为TURE的时候给出上三角矩阵上的值。
示例:
> set.seed(12345) # 设定产生随机数的初始值
> (x = rnorm(20,mean = rep(1:4,each = 5)*10,sd = 3))
[1] 11.756586 12.128398 9.672090 8.639508 11.817662 14.546132 21.890296
[8] 19.171448 19.147521 17.242034 29.651257 35.451936 31.111884 31.560649
[15] 27.748404 42.450700 37.340927 39.005267 43.362138 40.896171
> (y = rnorm(20,mean = rep(c(1,2,3,2),each = 5)*10,sd = 3))
[1] 12.338866 14.367355 8.067015 5.340588 5.206871 25.415293 18.555058
[8] 21.861139 21.836370 19.513067 32.435620 36.590501 36.147571 34.897337
[15] 30.762814 21.473565 19.027740 15.013849 25.303202 20.077403
> (df = data.frame(x = x, y = y))
> (dists = dist(df,method = 'minkowski',diag = T,p = 3))
注:set.seed()用于设定随机数种子,一个特定的种子可以产生一个特定的伪随机序列,这个函数的主要目的,是让你的模拟能够可重复出现