[데이터마이닝] 13강. 군집분석 R 함수 총정리

데이터마이닝 13강 — 군집분석 R 함수 총정리

안녕하세요! 이번 포스팅에서는 데이터마이닝 13강: 군집분석 R 함수와 사용 예제를 초보자분들도 쉽게 이해할 수 있도록 정리해보겠습니다.
군집분석을 R로 수행할 때 꼭 알아야 하는 함수들과 그 사용법을 자세히 설명드릴게요.


1. 군집분석 관련 R 함수

dist() 함수

행 사이의 거리(비유사성)를 계산하는 함수입니다.

함수 구조

1
dist(x, method = “euclidean”)
cs
  • x : 거리 계산 대상 데이터 행렬

  • method : 거리 계산 방법 (“euclidean”, “manhattan” 등)

설명

  • 거리 계산 후 비유사성 행렬 형태로 반환

  • hclust() 같은 군집화 함수에 사용

hclust() 함수

계층적 군집분석(응집형)을 수행하는 함수입니다.

함수 구조

1
hclust(dist, method = “complete”)
cs
  • dist : dist()로 계산한 거리 행렬

  • method : 군집화 방법 (“single”, “complete”, “average”)

diana() 함수

분할형 계층적 군집분석을 수행하는 함수입니다.
(cluster 패키지 설치 필요)

함수 구조

1
diana(x, metric = “euclidean”)
cs
  • x : 데이터 프레임 또는 행렬

  • metric : 거리 계산 방법

kmeans() 함수

K-평균 군집분석을 수행하는 함수입니다.

함수 구조

1
kmeans(x, centers, algorithm = “Hartigan-Wong”)
cs
  • x : 데이터 행렬

  • centers : 군집 개수 또는 초기 중심점 좌표 행

  • algorithm : 군집화 알고리즘 (“Hartigan-Wong” 기본, “MacQueen” 가능)

주요 알고리즘 설명

알고리즘 특징
"Hartigan-Wong" 기본 알고리즘, 가장 빠르고 안정적. 대부분의 경우 적합.
"MacQueen" 실시간 업데이트 방식, 반복마다 중심점 갱신. 소규모 데이터에 적합.
"Lloyd" 조금 단순한 방식, 대규모 데이터에도 사용 가능.

plot() 함수

군집화 결과를 시각화할 때 사용

함수 구조

1
plot(object)
cs
  • object : hclust, diana 결과 객체

cutree() 함수

군집 개수에 따라 각 데이터의 군집 번호를 반환하는 함수

함수 구조

1
cutree(tree, k = )
cs
  • tree : hclust, diana 결과

  • k : 원하는 군집 수

table() 함수

빈도표(분할표)를 생성하는 함수

함수 구조

1
table(…)
cs
  • ... : 범주형 변수

tapply() 함수

범주별로 요약통계를 계산하는 함수

함수 구조

1
tapply(x, indices, FUN)
cs
  • x : 데이터 값

  • indices : 범주형 인덱스

  • FUN : 적용할 함수 (mean, sum 등)


2. R 사용 예제

예제 코드

코드 설명

  • 2열짜리 행렬 생성 : (1,2), (3,6), (7,8) 세 개의 2차원 좌표 데이터

  • 관측치 간 유클리드 거리 계산 : dist() 함수는 관측치 간 거리 행렬을 만듦.

  • 거리 행렬을 가지고 계층적 군집분석 수행

    • method = "complete" : 군집 간의 최대 거리 기준으로 병합 (Complete linkage)

  • 군집 형성 과정을 덴드로그램으로 시각화 : 세 개의 점이 어떤 순서로 병합되는지 확인 가능

  • 덴드로그램을 k=2개의 군집으로 자르기

    • cutree()로 군집 번호 부여

    • 결과 : 각 데이터가 속한 군집 번호 확인 → 첫 번째, 두 번째 데이터는 1번 군집 / 세 번째 데이터는 2번 군집

  • 각 군집별로 첫 번째 변수(data[,1])의 평균 계산

    • tapply() : 그룹별 함수 적용

    • 각 군집의 평균값을 확인할 수 있음


중요 내용 정리

  • dist() : 거리 행렬 생성

  • hclust() : 계층적 군집분석

  • diana() : 분할형 계층적 군집분석

  • kmeans() : K-평균 군집분석

  • plot() : 군집분석 결과 시각화

  • cutree() : 군집 번호 할당

  • table() : 빈도표 생성

  • tapply() : 군집별 통계 계산


객관식 문제

1. K-평균 군집분석을 수행하는 함수는?
① dist()
② hclust()
③ kmeans()
④ diana()

정답:
해설: kmeans() 함수는 비계층적 K-평균 군집분석을 수행합니다.

2. 계층적 군집분석에서 군집 수를 정하고 군집 번호를 할당할 때 사용하는 함수는?
① cutree()
② table()
③ plot()
④ tapply()

정답:
해설: cutree() 함수는 hclust 결과로부터 군집 수를 정해 군집 번호를 반환합니다.

3. hclust() 함수에서 군집화 방법을 정하는 옵션명은?
① centers
② method
③ metric
④ FUN

정답:
해설: hclust() 함수의 method 옵션은 단일연결법, 완전연결법 등을 선택합니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다