줄리아에서 계층적 군집화하는 방법
설명
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")
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")