#with_columns #one-hot
개인적으로 데이터 전처리에서 종종 사용되는 기능이 있다면
카테고리컬 데이터를 기준에 따라 구간을 만들거나
각 구간별로 데이터를 하나의 컬럼으로 만드는 것이다.
예를 들어,
수학 점수를
0 - 10 >> 10 -20 >> 20 - 30 >> ... >> 90 - 100 으로 구간을 줄 수 있다.
그리고 해당 구간에 들어온 데이터에 1, 0 을 표시할 수 있다.
이걸 pola.rs 에서는 어떻게 만들 수 있을까?
여기 이전에 사용하던 taxi 데이터가 있는데,
trip_distance 라는 값에 구간을 주고 새로운 컬럼 하나를 생성해보자.
간단하게 0 - 1 >> 1 - 2 >> 2 - 3 >> 기타 등등 과 같이 구간을 나눠보면
'new_trip_distance' 라는 컬럼 하나가 생성되고 해당 컬럼은 구간별 조건에 맞는 데이터에 대해서
1, 2, 3, 10 이라는 값을 가진다.
무엇보다도... 저 코드 구조는 조금 번거로운 느낌이 들었다.
이건 결국 하나의 컬럼에 구간의 값을 넣어준 상황이다.
만약 one-hot 형태의 데이터를 만들고자 한다면 구간에 맞는 컬럼이 각각 하나씩 생성되어야 한다.
예를 들어,
new_trip_distance_00, new_trip_distance_01, new_trip_distance_02, 등등
진행해볼 시나리오는
1. trip_distance 의 min, max 값을 통해서 나눠야 하는 구간의 수를 파악하고,
2. 각 구간의 범위를 1로 잘라낸 후에,
3. 0 과 1 로 각 컬럼의 값을 나타낸다.
위의 내용을 코드로 나타내면,
결과를 확인해보니,
trip_distance 는 0 - 50 구간의 값을 가지는 것으로 확인되었다.
이를 통해서,
trip_distance_level 을 50개의 구간으로 나누게 되었고 해당 구간을 모두 컬럼으로 생성함과 동시에
0 과 1의 값을 넣어줄 수 있었다.
새로운 컬럼 50개가 추가로 생성되었음을 알 수 있다.
머신러닝 / 딥러닝 작업을 진행할 때 많이 사용하는 '피쳐 엔지니어링' 에서도 사용하는 방법으로 알고있다.