• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

질문드립니다

20.05.29 13:04 작성 조회수 111

2

강의내용 중에 .qcut을 사용하여 카테고리컬한 구분(bad, medium, good) 내용이 있습니다

10개의 데이터값이 2가 넘지 않는 소수 6번째짜리의 값들을 구분하였는데

낮은 값이 bad, 높은 값이 good, 중간 정도의 값이 medium으로 출력되었습니다

어떤 기준으로 .qcut 코드가 bad, good, medium을 구분하였는지 궁금합니다.

답변 3

·

답변을 작성해보세요.

1

지승환님의 프로필

지승환

질문자

2020.06.01

감사합니다!

0

감사합니다 :)

0

안녕하세요.

질문 주신 내용은 binning 혹은 bucketing 이라는 기법에 쓰이는 내용입니다.

연속된 숫자로된 컬럼을 질문 주신 내용처럼 범주형태로 변환하는 것입니다.

아래 코드를 보시면 10개의 숫자를 3개의 범주 값으로 나누도록 했습니다.

값을 나누는 기준은 q 값을 정해주면 q의 값만큼 범주의 갯수를 만들게 됩니다.

여기에 보시면 precision 이라는 옵션이 있는데  이 값은 bin을 나누는 정밀도입니다.

여기에서 정밀도를 구하는 기준과 공식은 pandas 내부의 소스코드를 찾아봐야지 알것 같습니다.

precision 을 1로 지정해 주었을 때 다음의 범위에서 값을 구하게 됩니다.

-1~3, 4~6, 7~9 의 범위로 3개의 범주로 나눕니다.

그래서 label 값을 지정하지 않았을 때 아래와 같이 (3, 6, 9 ) 3가지 값으로 구분합니다.

정밀도가 3일 때 -1.001~3, 4~6, 7~9 의 범위로 3개의 범주로 나눕니다.

이걸 label 로 표현하면 아래와 같습니다.