# 군집분석
# 1. 필요한 패키지 설치 및 로드
#install.packages("datasets") # 기본 설치됨
#install.packages("ggdendro") # 선택적으로 ggplot2 기반 시각화 가능
library(datasets)
# 2. 데이터 불러오기 (예: USArrests)
data("USArrests")
df <- na.omit(USArrests) # 결측치 제거 (없지만 안전하게 처리)
# 3. 표준화 (스케일링) - 변수 단위 맞추기 위해 꼭 필요!
df_scaled <- scale(df)
# 4. 거리 행렬 계산 (유클리디안 거리)
dist_matrix <- dist(df_scaled, method = "euclidean")
# 5. 계층적 군집분석 수행 (연결 방법: complete linkage)
hc <- hclust(dist_matrix, method = "complete")
# hclust(): 계층적 군집 실행 (method = "complete" 외에도
# "single", "average", "ward.D" 등 가능)
# 6. 덴드로그램 시각화
plot(hc,
main = "계층적 군집분석 덴드로그램",
xlab = "",
sub = "",
cex = 0.7,
hang = -1)
# 7. 군집 수 시각적으로 표시 (예: 4개 군집으로 나누기)
rect.hclust(hc, k = 4, border = "blue")

# 계층적 군집분석 with 맨해튼 거리 (R 코드)
# 1. 데이터 불러오기 및 확인
data("USArrests")
# 내장 데이터셋
df <- na.omit(USArrests) # 결측치 제거 (실제 데이터에는 없음)
# 2. 데이터 표준화 (스케일 조정)
df_scaled <- scale(df)
# 3. 거리 행렬 계산 - 맨해튼 거리 사용
dist_man <- dist(df_scaled, method = "manhattan")
# 4. 계층적 군집 분석 수행 (Complete linkage 방식)
hc_man <- hclust(dist_man, method = "complete")
# 5. 덴드로그램 시각화
plot(hc_man,
main = "계층적 군집분석 (맨해튼 거리)",
xlab = "",
sub = "",
cex = 0.7,
hang = -1)
# 6. 군집 수 시각적 표시 (예: 4개 군집)
rect.hclust(hc_man, k = 4, border = "red")
