수색…


소개

stats 패키지는 hclust 함수를 제공하여 계층 적 클러스터링을 수행합니다.

비고

hclust 외에도 다른 방법을 사용할 수 있습니다. 클러스터링에 대한 CRAN 패키지보기를 참조하십시오.

예제 1 - hclust의 기본 사용, end 드로 그램 표시, 플롯 클러스터

클러스터 라이브러리에는 클러스터 분석을 설명하기위한 표준 데이터 세트 인 ruspini 데이터가 들어 있습니다.

    library(cluster)                ## to get the ruspini data
    plot(ruspini, asp=1, pch=20)    ## take a look at the data

루스 피니 데이터

hclust는 원본 데이터가 아니라 거리 매트릭스를 기대합니다. 기본 매개 변수를 사용하여 트리를 계산하고 표시합니다. hang 매개 변수는 기준선을 따라 트리의 모든 잎을 정렬합니다.

    ruspini_hc_defaults <- hclust(dist(ruspini))
    dend <- as.dendrogram(ruspini_hc_defaults)
    if(!require(dendextend)) install.packages("dendextend"); library(dendextend)
    dend <- color_branches(dend, k = 4) 
    plot(dend)

여기에 이미지 설명을 입력하십시오.

트리를 잘라 네 개의 클러스터를 만들고 클러스터별로 포인트를 채색하는 데이터를 다시 채 웁니다. k는 원하는 클러스터 수입니다.

    rhc_def_4 = cutree(ruspini_hc_defaults,k=4)
    plot(ruspini, pch=20, asp=1, col=rhc_def_4)

Ruspini 데이터 - 첫 번째 클러스터링

이 클러스터링은 조금 이상합니다. 먼저 데이터를 확장하여 더 나은 클러스터링을 얻을 수 있습니다.

    scaled_ruspini_hc_defaults = hclust(dist(scale(ruspini)))
    srhc_def_4 = cutree(scaled_ruspini_hc_defaults,4)
    plot(ruspini, pch=20, asp=1, col=srhc_def_4)

확장 된 Ruspini 데이터 - 클러스터 됨

클러스터 비교를위한 기본 차이 측정은 "완료"입니다. method 매개 변수로 다른 측정 값을 지정할 수 있습니다.

    ruspini_hc_single = hclust(dist(ruspini), method="single")

예제 2 - hclust 및 특이 치

계층 적 클러스터링에서 이상 치는 종종 1 점 클러스터로 나타납니다.

특이점의 영향을 설명하기 위해 3 개의 가우스 분포를 생성합니다.

    set.seed(656)
    x = c(rnorm(150, 0, 1), rnorm(150,9,1), rnorm(150,4.5,1))
    y = c(rnorm(150, 0, 1), rnorm(150,0,1), rnorm(150,5,1))
    XYdf = data.frame(x,y)
    plot(XYdf, pch=20)

테스트 데이터

클러스터 구조를 세 개의 클러스터로 나눕니다.

    XY_sing = hclust(dist(XYdf), method="single")
    XYs3 = cutree(XY_sing,k=3)
    table(XYs3)
    XYs3
      1   2   3 
    448   1   1 

hclust는 두 개의 특이점을 발견하고 그 밖의 모든 것을 하나의 큰 클러스터에 집어 넣습니다. "실제"클러스터를 얻으려면 k를 더 높게 설정해야 할 수도 있습니다.

    XYs6 = cutree(XY_sing,k=6)
    table(XYs6)
    XYs6
      1   2   3   4   5   6 
    148 150   1 149   1   1 
    plot(XYdf, pch=20, col=XYs6)

테스트 데이터가 클러스터 됨 - 3 개의 특이점 및 3 개의 큰 클러스터

StackOverflow 게시물 에는 클러스터 수를 선택하는 방법에 대한 지침이 있지만 계층 적 클러스터링에서이 동작을 알고 있어야합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow