Binning Records on a Continuous Variable with Pandas Cut and QCut
When, why, and how to transform a numeric feature into a categorical feature
towardsdatascience.com
해당 글을 참고, 번역한 글입니다.
연속형 변수를 binning(구간을 나누어 그룹지음)하는 것에 대해서 생각해보자
Binning할 때 주의할 점
- granularity(얼마나 자세히 분할되어 있는지)가 줄어든다.
당연히 그룹짓기 때문에 각각 연속적인 값들 보다는 정확도가 떨어진다 - ML 모델에서는 거의 사용하지 않는다
- bin을 한 경곗값들은 많은 영향을 미친다. 그래서 그 값으로 오해하게 할 수 있는데 그럴 때는 다른 경곗값으로 binning했을 경우를 생각해보아야 한다.
When and Why to Bin
binning은 연속적인 값을 가진 값을 비교를 위해 그룹지을 때 사용한다.
ex) 나이대별로 사람들을 그룹지음
그래야 통계적인 비교를 할 수 있고 시각화도 할 수 있다.
1) 확실히 비즈니스적인 경계가 있는 경우와 2) 패턴을 정한 후에 청충에게 맞는 시각화자료를 만들 때
binning을 작가는 자주 사용하는 편이다.
시간당 임금과 여성의 비중을 시각화 해보았을 때, 임금이 오를수록 여성의 비중이 낮아지는 것을 확인할 수 있다.
p-value 가 이 결과가 표본 추출 때문이 아님을 증명해준다.
'Percent Female'의 값이0,50,100에 몰려있는 부분이 있어서 보여주려는 것에서 시선을 빼앗는다. 작가는 추상적인 산점도(scatterplot)을 사용해서 이것을 소화할수 있는 시각화로 바꾸고 싶다. bin을 이용해서!
How to Bin
Binning할 때 결정하는 3가지 요소
- bin의 수
가장 좋은 bin의 수는 없다. bin의 크기에 따라 밝힐 수 있는 데이터의 특징도 달라진다. - bin의 종류
- 의미있는 경계
- relative positioning
- 라벨
binning한 것들을 그냥 둬도 되고 이름을 붙혀도 된다.
3가지를 다 결정했으면
2가지 방법으로 구간을 나눌 수 있다.
- cut
독립변수에 의한 분할
ex)일할 수 있는 최대 시간이 8시간 이라면 x축(시간)에 공평하게 구간을 나눔-> 0~2,2~4,4~6,6~8시간
이 방법은 대부분이 중앙이나 중앙 아래값으로 귀결되게 한다 - qcut
백분율을 분할
ex)일할 수 있는 최대 시간이 8시간인데 4개의 구건으로 나누려고하면, 총100명중 25번째로 적게 일한 사람의 일한 시간이 2.5시간이라고 하면 0~2.5시간이 첫번째 구간이 된다.
각 bin 안에 들어가는 사람의 명수가 같게 된다.
bin각각의 사이즈가 다양하게 나올 수 있다.
둘 중에 어떤 방법을 사용할지는 선택에 달렸다. 문맥에 맞는 것을 선택해라.
fisher-jenks 알고리즘은 1차원에서 자연스러운 경곗값을 찾는것을 도와준다.