logo

ジュリアで階層的クラスタリングを行う方法 📂ジュリア

ジュリアで階層的クラスタリングを行う方法

説明

Clustering.jl パッケージの hclust() 関数を使えばいい。

  • hclust(d::AbstractMatrix; [linkage], [uplo], [branchorder])

距離行列 を入力として受け取り、階層的クラスタリング の結果を返す。クラスタ間の距離のデフォルトは 単一連結 だ。

デンドログラム を描くには、Plots.jl ではなく StatsPlots.jl を使わなければならない。

コード

using StatsPlots 
using Clustering 
using Distances 
using Distributions


a = rand(Uniform(-1,1), 2, 25)
scatt = scatter(a[1,:], a[2,:], label=false)
savefig(scatt, "julia_hclust_scatter.png")

julia_hclust_scatter.png

D_a = pairwise(Euclidean(), a, a)
SL = hclust(D_a, linkage=:single)
plot_SL = plot(SL)

p = plot(scatt, plot_SL, size=(800,400))
savefig(p, "julia_hclust.png")

julia_hclust.png