金子邦彦研究室研究道具箱と教材オープンデータ階層クラスタリング(数値ベクトルの集合)(a set of numeric vectors)

階層クラスタリング(数値ベクトルの集合)(a set of numeric vectors)

サンプルデータ

* サンプルデータ2次元

require(data.table)
require(ggplot2)

x1 <- rnorm(100)
y1 <- rnorm(100) * 0.2

a2 <- rnorm(200)
b2 <- rnorm(200) * 0.4
x2 <- a2 * 2 + b2 + 3
y2 <- - a2 + 2 * b2 + 4

D <- data.table( x=c(x1,x2), y=c(y1,y2) )
p <- ggplot(D, aes(x = x, y = y))
p + geom_point(size = 2)

[image]

* サンプルデータ6次元

require(data.table)
require(ggplot2)
require(mvtnorm)

T <- data.table( rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))),
     rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) )
plot(T)

[image]

階層クラスタリング (hierarchical clustering)

mclust パッケージの Mclust() 関数を用いたクラスタリング (clusering using Mclust() in the mclust package)

  1. 準備
    install.packages("mclust")
    
  2. クラスタリング結果のプロット (plot clustering result)

    * テストデータ

    require(mclust)
    C = Mclust(D)
    summary(C)
    plot(C)
    

    [image]
    require(mclust)
    C2 = Mclust(T)
    summary(C2)
    plot(C2)
    

    [image]

    * iris

    require(mclust)
    C3 = Mclust(iris[,c(1:4)])
    summary(C3)
    plot(C3)
    

    [image]

    [image]
  3. クラスタリング結果を整数ベクトルで得る (get clustering result)

    * テストデータ

    C$classification
    C$uncertainty
    

    [image]
    C2$classification
    C2$uncertainty
    

    [image]

    * iris

    C3$classification
    C3$uncertainty
    

    [image]
  4. 元データとクラスタに関する属性の表示

    * テストデータ

    C$d
    C$n
    C$G
    

    [image]
    C2$d
    C2$n
    C2$G
    

    [image]

    * iris

    C3$d
    C3$n
    C3$G
    

    [image]
  5. Mclust VVV モデル (ellipsoidal, varying volume, shape, and orientation) model) の各クラスタの属性の表示