티스토리 뷰

오늘은 저번 글의 결과인 서울 읍면동 당 상점수를 바탕으로 단계구분도를 만들어보겠습니다.

 

단계구분도를 만들 때 유용한 library는 mapclassify가 있습니다.

 

mapclassify는 Head tail break, Fisher Jenks, 분위수(Quantiles) 등 속성 값의 클레스(등급)을 나눌 때 유용하게 사용할 수 있습니다.

 

보통 등급을 매길 때 많이 쓰는 분위수는 다음과 같이 구할 수 있습니다.

import mapclassify as mc

c10 = mc.Quantiles(seoul['count'], k=10)
f, ax = plt.subplots(1, figsize=(9, 9))
seoul.assign(cl=c10.yb).plot(column='cl', categorical=True, \
        k=10, cmap='OrRd', linewidth=0.1, ax=ax, \
        edgecolor='white', legend=True)
ax.set_axis_off()
plt.title("shop count Quantiles")
plt.show()

Quantiles

결과는 위와 같습니다. count의 분포가 팔레토 법칙을 따르기 때문에 단순 분위수로 나누는 것은 무리가 있습니다.

 

대부분이 행정동이 큰 곳에 머물러 있습니다. 총 470개의 행정동을 10분위로 나누면 가장 큰 클레스가 47개입니다.

이렇게되면 눈에 크게 보이는 47개가 최고 클레스라는 뜻이고 그 결과 위 그림과 같이 대부분이 씨뻘건색, 즉 최고 클레스로 배정받게 됩니다. 과연 각 클레스를 적절히 데이터를 군집되있는 결과라고 할 수 있을까요?

 

Fisher Jenks 방법은 다른 클래스에 대한 값의 최적 배열을 결정하도록 설계된 데이터 클러스터링 방법입니다. 이는 각 그룹의 평균 평균 편차를 최소화하면서 각 그룹의 평균을 다른 그룹의 평균과 편차를 최대화하여 이루어집니다.

c10 = mc.FisherJenks(seoul['count'], k=10)
f, ax = plt.subplots(1, figsize=(9, 9))
seoul.assign(cl=c10.yb).plot(column='cl', categorical=True, \
        k=10, cmap='OrRd', linewidth=0.1, ax=ax, \
        edgecolor='white', legend=True)
ax.set_axis_off()
plt.title("shop count Fisher Jenks")
plt.show()

Fisher Jenks

시각적으로 분위수로 나눌 때보다 좀 더 잘 나누어진것 같습니다.  

 

또한 mapclassify library는 Bin Jiang이 제시한 팔레토 법칙을 따르는 데이터를 classify 하는 방법인 head tail break 방법도 지원합니다. Head tail break 방법은 나중에 기회가 있으면 따로 포스팅 해보겠습니다.

c10 = mc.HeadTailBreaks(seoul['count'])
f, ax = plt.subplots(1, figsize=(9, 9))
seoul.assign(cl=c10.yb).plot(column='cl', categorical=True, \
        k=10, cmap='OrRd', linewidth=0.1, ax=ax, \
        edgecolor='white', legend=True)
ax.set_axis_off()
plt.title("shop count Head tail break")
plt.show()

Head tail break

Head tail break는 앞 서 소개한 분위수, Fisher Jenks 방법과 다르게 데이터 기반으로 class 수를 나눕니다. 여기서는 7개의 class로 나누었네요. 

 

아무튼 mapclassify 라는 library로 읍면동안의 상점수를 토대로 단계구분도를 만들어 보았습니다. 

 

다음 글은 pysal이라는 library를 이용한 공간통계 관련 글일것 같습니다. 

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함