홈>
현재 그룹화 된 데이터에서 클러스터의 중심을 찾으려고합니다. 샘플 데이터 세트 및 문제점 정의를 사용하여
kmeans
를 작성할 수 있습니다.
각 그룹과 함께 클러스터. 그러나 주어진 그룹에 대해 클러스터의 각 중심을 처리 할 때 그룹을 얻는 방법을 모르겠습니다. https://rdrr.io/cran/broom/man/kmeans_tidiers.html
샘플 데이터는 보낸 사람 (add
gr
를 약간 수정 함)
기둥)
샘플 데이터
library(dplyr)
library(broom)
library(ggplot2)
set.seed(2015)
sizes_1 <- c(20, 100, 500)
sizes_2 <- c(10, 50, 100)
centers_1 <- data_frame(x = c(1, 4, 6),
y = c(5, 0, 6),
n = sizes_1,
cluster = factor(1:3))
centers_2 <- data_frame(x = c(1, 4, 6),
y = c(5, 0, 6),
n = sizes_2,
cluster = factor(1:3))
points1 <- centers_1 %>%
group_by(cluster) %>%
do(data_frame(x = rnorm(.$n, .$x),
y = rnorm(.$n, .$y),
gr="1"))
points2 <- centers_2 %>%
group_by(cluster) %>%
do(data_frame(x = rnorm(.$n, .$x),
y = rnorm(.$n, .$y),
gr="2"))
combined_points <- rbind(points1, points2)
> combined_points
# A tibble: 780 x 4
# Groups: cluster [3]
cluster x y gr
<fctr> <dbl> <dbl> <chr>
1 1 3.66473833 4.285771 1
2 1 0.51540619 5.565826 1
3 1 0.11556319 5.592178 1
4 1 1.60513712 5.360013 1
5 1 2.18001557 4.955883 1
6 1 1.53998887 4.530316 1
7 1 -1.44165622 4.561338 1
8 1 2.35076259 5.408538 1
9 1 -0.03060973 4.980363 1
10 1 2.22165205 5.125556 1
# ... with 770 more rows
ggplot(combined_points, aes(x, y)) +
facet_wrap(~gr) +
geom_point(aes(color = cluster))
OK 여기까지 모든 것이 훌륭합니다. 각 그룹에서 각 클러스터 센터를 추출하려는 경우
clust <- combined_points %>%
group_by(gr) %>%
dplyr::select(x, y) %>%
kmeans(3)
> clust
K-means clustering with 3 clusters of sizes 594, 150, 36
Cluster means:
gr x y
1 1.166667 6.080832 6.0074885
2 1.333333 4.055645 0.0654158
3 1.305556 1.507862 5.2417670
우리가
gr
를 볼 수 있듯이
번호가 변경되었는데이 센터가 어떤 그룹에 속하는지 모르겠습니다.
tidy
를보기 위해 한 걸음 앞으로 나아갈 때
clust
의 형식
> tidy(clust)
x1 x2 x3 size withinss cluster
1 1.166667 6.080832 6.0074885 594 1095.3047 1
2 1.333333 4.055645 0.0654158 150 312.4182 2
3 1.305556 1.507862 5.2417670 36 115.2484 3
아직도
gr 2
를 볼 수 없습니다
센터 정보.
문제가 매우 명확하게 설명 되었기를 바랍니다. 빠진 부분이 있으면 알려주세요! 미리 감사드립니다!
- 답변 # 1
관련 자료
- python - KMeans 클러스터링은 4 개 이상의 열이있는 데이터 프레임에서 작동하지 않습니다
- python - scikit learn k-means clustering&tfidfvectorizer - tf-idf 점수가 가장 높은 상위 n 개의 항을 k- 평균에 전달하는 방법
- cluster analysis - Kmeans 클러스터링을위한 K 값 선택
- python - kmeans 클러스터링의 고객 속성 이해
- machine learning - kmeans 클러스터링 방법에서 kmeansfit 함수를 사용하는 이유는 무엇입니까?
- r - K- 평균 군집화의 메모리 문제
- python - 기존 K- 평균 군집화 모델을 재교육하는 방법
- machine learning - 군집 k- 평균은 구형이 아닙니다
- python - 한 항목에서 다른 항목으로의 상대적 거리를 나타내는 데이터 세트에서 K- 평균 군집화를 사용한다는 것은 무슨 의미입니까?
- python 3.x - 표준화 된 PC의 KMeans 클러스터링 플롯
- python - KMeans 클러스터링에서 사용할 카테고리 기능 인코딩
- unsupervised learning - scikit-learn kmeans 클러스터링 오버 플로우 오류
- r - K- 평균 군집 해석
- python - k- 평균 군집화 - 추가 변수로
- python 3.x - 두 축의 적절한 스케일링으로 가져온 데이터 세트에 대해 k- 평균 알고리즘으로 클러스터링을 수행하는 방법
- python - KMeans를 사용하여 대량의 텍스트 파일 클러스터링
- tensorflow - GPU 지원으로 고차원 데이터에서 더 빠른 Kmeans 클러스터링
- machine learning - 더 많은 기능을 위해 k- 평균 군집화를 사용하는 방법
- r - K- 평균 군집화 방법
관련 질문
- Rs 요약 기능을 사용할 때 나타나는 오류. 이 문제의 원인이 무엇인지 아십니까?
- 값에 가까운 값으로 데이터 프레임 정렬 -R
- R을 사용하여 여러 Excel 파일을 반복적으로 읽고 조작하고 하나의 데이터 프레임에 추가합니다.
- r : 여러 조건을 기반으로 변수를 다시 코딩하는 방법이 있습니까?
- r : mutate_at() 내에서 case_when()을 사용하여 NA 유형이 다른 여러 열을 다시 코딩합니다.
- 내 r-스크립트가 rstudio에서 작동하고 예정된 시간에 작동하지 않는 이유는 무엇입니까?
- R은 여러 조건을 기반으로 셀 데이터 프레임 채우기
- dplyr은 선형 회귀 계수를 얻습니다.
- 데이터 프레임을 분할표로 직접 변환(R)
- r : mutate 함수 호출 내부와 외부에서 동일한 함수에서 다른 결과 얻기
kmeans
dplyr 그룹화를 이해하지 못하므로 각 그룹 내에서 세 개의 전체 센터를 찾는 것입니다. 이 시점에서 선호되는 관용구는 입력 데이터의 목록 열입니다 (예 :와이즈 비즈 열은 입력 데이터가 아니라 모델 결과에서 나온 것입니다.
cluster
로도 같은 일을 할 수 있습니다 예 :하지만
combined_points %>% group_by(gr) %>% do(model = kmeans(.[c('x', 'y')], 3)) %>% ungroup() %>% group_by(gr) %>% do(map_df(.$model, broom::tidy)) %>% ungroup()
그룹화는이 시점에서 소프트 더 이상 사용되지 않으며, 명시 적으로do
의 필요성으로 볼 수 있듯이 코드가 약간 멍청합니다. 너무 많아요.ungroup