KMeans 알고리즘을 공부하면서 이 알고리즘을 사용하여 어떤 문제를
해결할 수 있을지 고민을 해봤습니다.
그러다가 문뜩 K-Means 알고리즘과 대한민국의 인구밀도 산점도를 활용하면
대한민국의 인구 밀도에 따른 최적화된 행정구역을 재구성할 수 있지 않을까
생각이 들었습니다.
그래서 인터넷에서 데이터셋들을 찾고, 해당 데이터셋들을 활용하여
위의 문제를 해결해봤습니다.
행정구역별 위도/경도 데이터셋: https://skyseven73.tistory.com/23
행정구역별 인구 수 데이터셋: https://www.data.go.kr/data/15097972/fileData.do
-행정구역별 인구 수 raw 데이터 샘플
행정기관코드 | 기준연월 | 시도명 | 시군구명 | 읍면동명 | 계 | 남자 | 여자 | 만0세남자 | 만1세남자 | 만2세남자 | 만3세남자 | 만4세남자 | 만5세남자 | 만6세남자 | 만7세남자 | 만8세남자 | 만9세남자 | 만10세남자 | 만11세남자 | 만12세남자 | 만13세남자 | 만14세남자 | 만15세남자 | 만16세남자 | 만17세남자 | 만18세남자 | 만19세남자 | 만20세남자 | 만21세남자 | 만22세남자 | 만23세남자 | 만24세남자 | 만25세남자 | 만26세남자 | 만27세남자 | 만28세남자 | 만29세남자 | 만30세남자 | 만31세남자 | 만32세남자 | 만33세남자 | 만34세남자 | 만35세남자 | 만36세남자 | 만37세남자 | 만38세남자 | 만39세남자 | 만40세남자 | 만41세남자 | 만42세남자 | 만43세남자 | 만44세남자 | 만45세남자 | 만46세남자 | 만47세남자 | 만48세남자 | 만49세남자 | 만50세남자 | 만51세남자 | 만52세남자 | 만53세남자 | 만54세남자 | 만55세남자 | 만56세남자 | 만57세남자 | 만58세남자 | 만59세남자 | 만60세남자 | 만61세남자 | 만62세남자 | 만63세남자 | 만64세남자 | 만65세남자 | 만66세남자 | 만67세남자 | 만68세남자 | 만69세남자 | 만70세남자 | 만71세남자 | 만72세남자 | 만73세남자 | 만74세남자 | 만75세남자 | 만76세남자 | 만77세남자 | 만78세남자 | 만79세남자 | 만80세남자 | 만81세남자 | 만82세남자 | 만83세남자 | 만84세남자 | 만85세남자 | 만86세남자 | 만87세남자 | 만88세남자 | 만89세남자 | 만90세남자 | 만91세남자 | 만92세남자 | 만93세남자 | 만94세남자 | 만95세남자 | 만96세남자 | 만97세남자 | 만98세남자 | 만99세남자 | 만100세남자 | 만101세남자 | 만102세남자 | 만103세남자 | 만104세남자 | 만105세남자 | 만106세남자 | 만107세남자 | 만108세남자 | 만109세남자 | 만110세이상남자 | 만0세여자 | 만1세여자 | 만2세여자 | 만3세여자 | 만4세여자 | 만5세여자 | 만6세여자 | 만7세여자 | 만8세여자 | 만9세여자 | 만10세여자 | 만11세여자 | 만12세여자 | 만13세여자 | 만14세여자 | 만15세여자 | 만16세여자 | 만17세여자 | 만18세여자 | 만19세여자 | 만20세여자 | 만21세여자 | 만22세여자 | 만23세여자 | 만24세여자 | 만25세여자 | 만26세여자 | 만27세여자 | 만28세여자 | 만29세여자 | 만30세여자 | 만31세여자 | 만32세여자 | 만33세여자 | 만34세여자 | 만35세여자 | 만36세여자 | 만37세여자 | 만38세여자 | 만39세여자 | 만40세여자 | 만41세여자 | 만42세여자 | 만43세여자 | 만44세여자 | 만45세여자 | 만46세여자 | 만47세여자 | 만48세여자 | 만49세여자 | 만50세여자 | 만51세여자 | 만52세여자 | 만53세여자 | 만54세여자 | 만55세여자 | 만56세여자 | 만57세여자 | 만58세여자 | 만59세여자 | 만60세여자 | 만61세여자 | 만62세여자 | 만63세여자 | 만64세여자 | 만65세여자 | 만66세여자 | 만67세여자 | 만68세여자 | 만69세여자 | 만70세여자 | 만71세여자 | 만72세여자 | 만73세여자 | 만74세여자 | 만75세여자 | 만76세여자 | 만77세여자 | 만78세여자 | 만79세여자 | 만80세여자 | 만81세여자 | 만82세여자 | 만83세여자 | 만84세여자 | 만85세여자 | 만86세여자 | 만87세여자 | 만88세여자 | 만89세여자 | 만90세여자 | 만91세여자 | 만92세여자 | 만93세여자 | 만94세여자 | 만95세여자 | 만96세여자 | 만97세여자 | 만98세여자 | 만99세여자 | 만100세여자 | 만101세여자 | 만102세여자 | 만103세여자 | 만104세여자 | 만105세여자 | 만106세여자 | 만107세여자 | 만108세여자 | 만109세여자 | 만110세이상여자 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1111051500 | 2023-02-28 | 서울특별시 | 종로구 | 청운효자동 | 11605 | 5325 | 6280 | 14 | 22 | 25 | 29 | 20 | 39 | 46 | 56 | 45 | 40 | 57 | 61 | 57 | 54 | 60 | 60 | 58 | 54 | 70 | 58 | 58 | 63 | 63 | 65 | 75 | 64 | 78 | 80 | 72 | 79 | 92 | 75 | 70 | 65 | 66 | 73 | 55 | 68 | 70 | 65 | 83 | 90 | 93 | 102 | 73 | 70 | 89 | 90 | 92 | 102 | 93 | 115 | 87 | 95 | 93 | 78 | 90 | 80 | 60 | 63 | 77 | 87 | 85 | 58 | 72 | 62 | 44 | 67 | 50 | 48 | 46 | 30 | 39 | 37 | 34 | 43 | 36 | 25 | 44 | 25 | 43 | 32 | 29 | 25 | 25 | 22 | 21 | 14 | 8 | 14 | 4 | 5 | 3 | 2 | 0 | 3 | 1 | 2 | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 24 | 25 | 22 | 24 | 30 | 19 | 43 | 41 | 45 | 47 | 52 | 52 | 58 | 47 | 61 | 61 | 73 | 36 | 50 | 43 | 57 | 50 | 66 | 67 | 90 | 69 | 81 | 83 | 90 | 79 | 109 | 83 | 75 | 87 | 85 | 67 | 80 | 82 | 95 | 94 | 98 | 117 | 134 | 112 | 115 | 98 | 106 | 118 | 113 | 120 | 116 | 101 | 111 | 116 | 104 | 116 | 85 | 105 | 92 | 90 | 76 | 84 | 81 | 94 | 79 | 76 | 84 | 62 | 60 | 52 | 69 | 49 | 55 | 62 | 50 | 56 | 59 | 54 | 49 | 55 | 56 | 39 | 36 | 41 | 38 | 24 | 22 | 23 | 18 | 17 | 12 | 11 | 6 | 5 | 6 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1111053000 | 2023-02-28 | 서울특별시 | 종로구 | 사직동 | 9120 | 4060 | 5060 | 12 | 24 | 12 | 22 | 20 | 26 | 37 | 43 | 33 | 26 | 29 | 33 | 24 | 21 | 39 | 30 | 21 | 26 | 34 | 26 | 30 | 32 | 33 | 47 | 44 | 46 | 50 | 55 | 63 | 69 | 87 | 81 | 79 | 70 | 48 | 50 | 58 | 42 | 53 | 49 | 72 | 78 | 61 | 49 | 54 | 58 | 68 | 59 | 73 | 67 | 72 | 82 | 80 | 71 | 74 | 67 | 60 | 60 | 57 | 62 | 65 | 72 | 73 | 66 | 48 | 70 | 56 | 55 | 45 | 32 | 41 | 22 | 22 | 32 | 28 | 29 | 24 | 30 | 29 | 22 | 35 | 22 | 28 | 22 | 28 | 20 | 21 | 13 | 15 | 12 | 7 | 5 | 1 | 5 | 5 | 5 | 1 | 1 | 3 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 9 | 17 | 16 | 20 | 21 | 25 | 36 | 30 | 34 | 36 | 41 | 32 | 45 | 33 | 35 | 39 | 33 | 42 | 42 | 40 | 39 | 40 | 36 | 58 | 58 | 67 | 73 | 87 | 82 | 84 | 97 | 89 | 90 | 55 | 71 | 88 | 58 | 83 | 77 | 110 | 82 | 77 | 76 | 75 | 67 | 84 | 84 | 81 | 71 | 77 | 90 | 70 | 97 | 101 | 84 | 82 | 68 | 69 | 81 | 77 | 74 | 74 | 75 | 82 | 74 | 62 | 57 | 56 | 45 | 50 | 50 | 31 | 46 | 48 | 37 | 46 | 39 | 30 | 43 | 37 | 45 | 37 | 35 | 33 | 34 | 28 | 22 | 20 | 20 | 11 | 11 | 8 | 11 | 10 | 6 | 3 | 3 | 3 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 1111054000 | 2023-02-28 | 서울특별시 | 종로구 | 삼청동 | 2322 | 1104 | 1218 | 2 | 2 | 2 | 2 | 3 | 4 | 6 | 6 | 4 | 7 | 8 | 8 | 9 | 12 | 8 | 13 | 12 | 15 | 7 | 10 | 5 | 8 | 13 | 17 | 15 | 13 | 18 | 12 | 10 | 16 | 21 | 11 | 17 | 9 | 25 | 9 | 7 | 11 | 13 | 17 | 19 | 14 | 19 | 21 | 13 | 15 | 13 | 14 | 15 | 12 | 14 | 19 | 20 | 16 | 23 | 20 | 15 | 15 | 20 | 18 | 16 | 23 | 17 | 22 | 24 | 16 | 13 | 21 | 17 | 16 | 14 | 8 | 7 | 20 | 14 | 17 | 5 | 7 | 9 | 9 | 7 | 11 | 9 | 5 | 3 | 3 | 7 | 6 | 1 | 1 | 5 | 1 | 2 | 2 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 3 | 2 | 3 | 4 | 3 | 11 | 1 | 9 | 2 | 12 | 5 | 11 | 8 | 9 | 8 | 7 | 6 | 4 | 9 | 5 | 4 | 11 | 13 | 13 | 13 | 18 | 12 | 21 | 20 | 16 | 18 | 18 | 15 | 15 | 18 | 14 | 14 | 12 | 16 | 15 | 23 | 18 | 20 | 20 | 13 | 19 | 9 | 11 | 21 | 23 | 20 | 19 | 19 | 17 | 17 | 21 | 13 | 28 | 17 | 13 | 19 | 24 | 20 | 20 | 27 | 23 | 19 | 17 | 21 | 10 | 24 | 10 | 8 | 12 | 15 | 17 | 15 | 10 | 13 | 6 | 17 | 15 | 9 | 10 | 5 | 10 | 10 | 6 | 7 | 7 | 2 | 3 | 2 | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 1111055000 | 2023-02-28 | 서울특별시 | 종로구 | 부암동 | 9178 | 4340 | 4838 | 13 | 14 | 6 | 21 | 12 | 17 | 33 | 25 | 28 | 30 | 51 | 42 | 49 | 44 | 38 | 52 | 47 | 48 | 49 | 57 | 42 | 47 | 67 | 40 | 60 | 49 | 66 | 82 | 67 | 60 | 67 | 58 | 67 | 53 | 49 | 47 | 44 | 61 | 49 | 66 | 63 | 50 | 57 | 69 | 58 | 62 | 63 | 54 | 66 | 80 | 84 | 81 | 84 | 81 | 66 | 79 | 59 | 67 | 76 | 78 | 69 | 72 | 60 | 82 | 69 | 54 | 58 | 60 | 45 | 53 | 42 | 34 | 33 | 32 | 34 | 48 | 26 | 31 | 32 | 22 | 34 | 26 | 21 | 20 | 13 | 21 | 14 | 10 | 13 | 3 | 5 | 3 | 3 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 12 | 8 | 14 | 18 | 27 | 26 | 26 | 31 | 36 | 34 | 26 | 35 | 32 | 37 | 39 | 39 | 43 | 44 | 48 | 43 | 57 | 49 | 56 | 70 | 66 | 41 | 59 | 67 | 59 | 71 | 59 | 56 | 49 | 47 | 48 | 70 | 62 | 56 | 67 | 60 | 77 | 83 | 82 | 66 | 74 | 83 | 71 | 89 | 105 | 81 | 99 | 94 | 98 | 99 | 83 | 83 | 89 | 79 | 84 | 73 | 72 | 102 | 76 | 66 | 78 | 67 | 77 | 57 | 45 | 51 | 32 | 36 | 49 | 39 | 56 | 42 | 39 | 27 | 32 | 31 | 41 | 24 | 37 | 23 | 27 | 18 | 20 | 12 | 13 | 9 | 12 | 5 | 7 | 10 | 5 | 5 | 0 | 1 | 0 | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 1111056000 | 2023-02-28 | 서울특별시 | 종로구 | 평창동 | 17602 | 8212 | 9390 | 33 | 46 | 37 | 56 | 57 | 54 | 57 | 80 | 73 | 71 | 72 | 55 | 80 | 70 | 67 | 101 | 70 | 63 | 83 | 89 | 80 | 99 | 126 | 100 | 94 | 92 | 115 | 115 | 116 | 126 | 101 | 112 | 107 | 88 | 90 | 102 | 80 | 96 | 100 | 107 | 102 | 130 | 133 | 121 | 106 | 91 | 117 | 92 | 117 | 147 | 133 | 149 | 148 | 146 | 150 | 145 | 121 | 144 | 148 | 114 | 172 | 165 | 149 | 144 | 131 | 124 | 124 | 110 | 101 | 91 | 99 | 57 | 62 | 70 | 73 | 67 | 57 | 43 | 38 | 51 | 43 | 51 | 39 | 40 | 39 | 31 | 25 | 28 | 20 | 16 | 12 | 10 | 2 | 1 | 5 | 1 | 1 | 0 | 2 | 1 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 29 | 31 | 50 | 49 | 35 | 47 | 46 | 71 | 70 | 68 | 71 | 74 | 93 | 61 | 77 | 81 | 84 | 75 | 95 | 81 | 80 | 97 | 106 | 115 | 104 | 111 | 116 | 112 | 128 | 126 | 112 | 99 | 92 | 92 | 97 | 119 | 125 | 110 | 109 | 123 | 151 | 151 | 145 | 136 | 130 | 123 | 122 | 129 | 146 | 176 | 178 | 178 | 179 | 186 | 204 | 172 | 170 | 174 | 152 | 171 | 156 | 168 | 184 | 129 | 146 | 158 | 133 | 128 | 133 | 104 | 89 | 69 | 58 | 66 | 89 | 76 | 82 | 71 | 78 | 53 | 48 | 67 | 56 | 58 | 50 | 55 | 40 | 34 | 42 | 27 | 19 | 20 | 15 | 9 | 10 | 11 | 10 | 1 | 4 | 3 | 2 | 2 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
-행정구역별 위도/경도 raw 데이터 샘플
시도 | 시군구 | 읍면동/구 | 읍/면/리/동 | 리 | 위도 | 경도 | |
---|---|---|---|---|---|---|---|
0 | 서울특별시 | nan | nan | nan | nan | 37.5666 | 126.978 |
1 | 서울특별시 | 강동구 | nan | nan | nan | 37.5301 | 127.124 |
2 | 서울특별시 | 강동구 | 천호동 | nan | nan | 37.545 | 127.137 |
3 | 서울특별시 | 강동구 | 성내동 | nan | nan | 37.5304 | 127.122 |
4 | 서울특별시 | 강동구 | 암사동 | nan | nan | 37.5515 | 127.133 |
위 데이터셋을 조합해서 하나의 데이터셋으로 정리했습니다.
-전처리된 데이터 샘플
시도명 | 시군구명 | 읍면도명 | 인구수 | 위도 | 경도 | 가중치 | |
---|---|---|---|---|---|---|---|
0 | 서울특별시 | 종로구 | 청운효자동 | 11605 | 37.5841 | 126.971 | 13 |
1 | 서울특별시 | 종로구 | 사직동 | 9120 | 37.5762 | 126.969 | 10 |
2 | 서울특별시 | 종로구 | 삼청동 | 2322 | 37.585 | 126.982 | 3 |
3 | 서울특별시 | 종로구 | 부암동 | 9178 | 37.5925 | 126.964 | 10 |
4 | 서울특별시 | 종로구 | 평창동 | 17602 | 37.6063 | 126.968 | 19 |
정리한 데이터를 바탕으로 인구밀도 산점도를 시각화해봤습니다.
위도/경도 데이터를 포함시킨 덕에 모양이 대한민국 지도 모양으로 나왔습니다.
위 산점도에는 위도/경도 데이터만 포함되어 있지 인구수 데이터는 포함되어있지 않습니다.
그래서 각 위도/경도를 (인구수 / 1000 + 1)개만큼 복사해서 KMeans Clustering을
수행할 것입니다.
정리한 데이터로 KMeans Clustering을 수행한 뒤 Elbow Curve를 시각화해봤습니다.
Elbow Curve
Elbow Curve입니다. 제가 보기엔 9가 가장 적절한 Cluster의 개수인 것 같네요.
Cluster을 9개로 설정하고 시각화한 KMeans Clustering 결과입니다.
이걸 대한민국의 인구 밀도에 따른 최적화된 행정구역이라고 볼 수 있을까요?