Snoopy [ML] 19. 데이터 전처리(8) - 이산화(Discretisation / Equal with binining, Equal frequency bining)
머신러닝과 딥러닝/ML 개념정리

[ML] 19. 데이터 전처리(8) - 이산화(Discretisation / Equal with binining, Equal frequency bining)

Sooyoon Jeong 2022. 11. 14.

멋쟁이 사자처럼 AI스쿨 7기 오늘코드 박조은 강사님의 수업자료를 바탕으로 포스팅하였습니다.


1. 이산화란?

numerical feature를 일정 기준으로 나누어 그룹화 하는 것으로

연속된 수치데이터의 구간을 잘 나눠준다면 머신러닝 알고리즘에 힌트를 줄 수도 있다.

(수치형 데이터를 범주형 데이터로 변환할 필요가 있을 때 사용한다.)

 

그럼 구간화하는 기준은 어떻게 정해야할까?

EDA를 열심히 해서, 어떻게 나누는 것이 예측에 도움이 될지 확인해야한다.

 

성능이 향상될 수도 있지만, 잘못 구간화하면 모델의 성능이 떨어질 수도 있다는 것을 잊지말자.

또한, 트리모델의 경우 데이터를 너무 잘게 나누지 않는 것이 일반화 하는데 도움이 될 수 있다.

 

2. 이산화가 필요한 이유

1️⃣ 특징을 잘 나타내는 속성으로 그룹화하면 경향이 뚜렷해지고 이해하기 쉬워져서 모델 성능에 도움이 된다.

     (모델에 힌트를 줄 수 있다.)
2️⃣ 과대적합 방지에 도움을 줄 수 있다.

3. 이산화 종류

참고로 하기 방법들은 RFM 기법에서도 종종 사용되는 방법이다.

 

1️⃣ Equal width binning 
범위를 기준으로 나누는 것
ex) 절대평가, 히스토그램, pd.cut, 고객을 구매금액을 기준으로 구간을 나눌 때

단점: 편향된 분포에 민감하다.

2️⃣ Equal frequency bining
빈도를 기준으로 나누는 것
ex) 상대평가, pd.qcut, 고객을 고객의 수를 기준으로 구간을 나눌 때

장점: 알고리즘 성능 개선에 도움이 된다.
단점: 임의의 binning은 대상과의 관계를 방해할 수 있다.

 

[cut, qcut]

https://42-snoopy.tistory.com/entry/Python-Pandas-10-%EA%B5%AC%EA%B0%84-%EB%82%98%EB%88%84%EA%B8%B0cut-qcut

 

[Python] Pandas - 10. 구간 나누기(cut, qcut)

1. pd.cut( ) 연속된 수치를 구간으로 나누어 카테고리화 할 때 사용 - bins 옵션: 나누고자 하는 구간의 개수 설정 - labels: 카테고리 명을 설정, 지정한 bins의 개수보다 1개 적어야 한다. - 절대평가,

42-snoopy.tistory.com

 

댓글