当前位置:   article > 正文

聚类分析完整指南:k-均值和层次聚类(演算与程序) (一)_k均值聚类和层次聚类算法思想

k均值聚类和层次聚类算法思想

什么是聚类分析?


聚类分析是探索性数据分析的一种形式,在这种分析中,观测数据被分成具有共同特征的不同组。

聚类分析(也称为分类)的目的是构造群(或类或群),同时确保以下性质:在一个群中观测值必须尽可能相似,而属于不同群的观测值必须尽可能不同

主要有两种分类:

  1. K-means clustering
  2. Hierarchical clustering

第一种方法通常在预先确定类的数量时使用,而第二种方法通常用于未知数量的类,并帮助确定最佳数量。这两种方法在下面通过演算和R程序中的应用进行了说明。注意,对于层次聚类,本文只介绍了升序分类。

聚类算法利用距离将观测数据分成不同的组。因此,在深入介绍这两种分类方法之前,将介绍如何计算点之间距离的演算。

Application 1: Computing distances

存在一个数据集,包含点 a = ( 0 , 0 ) ′ , b = ( 1 , 0 ) ′ a = (0,0)', b=(1,0)' a=(0,0),b=(1,0) c = ( 5 , 5 ) ′ c=(5,5)' c=(5,5). 计算点间欧式距离矩阵(matrix of Euclidean distances)。

Solution

# We create the points in R
a <- c(0, 0)
b <- c(1, 0)
c <- c(5, 5)

X <- rbind(a, b, c) # a, b and c are combined per row
colnames(X) <- c("x", "y") # rename columns

X # display the points
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

OUTPUT:

##   x y
## a 0 0
## b 1 0
## c 5 5
  • 1
  • 2
  • 3
  • 4

根据勾股定理(Pythagorean formula),我们知道 ( x a , y a ) (x_a, y_a) (xa,ya) ( x b , y b ) (x_b, y_b) (xb,yb)之间的距离在 R 2 \mathbb{R}^2 R2中是 ( x a − x b ) 2 + ( y a − y b ) 2 \sqrt{(x_a - x_b)^2 + (y_a - y_b)^2} (xaxb)2+(yayb)2

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/774637
推荐阅读
相关标签
  

闽ICP备14008679号