데이터 분석에서 시간 데이터는 많이 활용됩니다. 기초 분석이나 예측 모델을 구축할 때 과거의 데이터는 유용합니다, 하지만 시간 데이터는 쉽게 버그나 누수를 유발하므로 주의가 필요합니다.
호텔의 예약 레코드 데이터셋을 예로 해 고객이 다음에 예약할 호텔의 가격대를 예측하고 싶어 하는 상황을 생각해보면 먼저, 고객이 과거에 예약한 호텔의 가격대를 통해 예약할 호텔의 가격대를 예측할 수 있다는 가설을 세웁시다. 이 가설을 사용하여 예측 모델을 만들기 위해서는 예약 레코드 별로 해당 예약 고객의 과거 예약 레코드 정보를 결합한 데이터를 마련해야 합니다.
고객 A의 2017년 8월 예약 레코드에는 고객 A의 2016년 8월의 예약 레코드를 결합한 과거의 예약 레코드를 집약하여 과거 1년간 호텔의 평균 예약 가격을 계산하여 정보를 부여합니다. 예약한 호텔의 가격과 과거 1년 동안의 호텔 평균 예약 가격이 있어 연관 관계 분석이 가능해질 뿐만 아니라 예측 모델의 설명 변수로도 사용할 수 있습니다.
하지만 기준 없이 단순히 과거 데이터를 결합하면 데이터 수가 폭발적으로 증가합니다. 예를 들어 특정 사용자의 과거 이력이 100건 있다면 하나의 데이터마다 모든 과거 데이터를 결합하면 최신 데이터는 99건의 과거 데이터와 결합하게 되고 그다음 새로운 데이터는 98건과 결합하는 방식으로 처리되어 모든 데이터를 결합하면 4,950건이 됩니다. 이 문제를 해결하기 위해 두 가지 방법이 있습니다.
- 결합 대상이 되는 과거의 기간을 줄인다.
- 결합한 과거 데이터에 집약 함수를 사용하여 데이터 수가 늘어나지 않도록 한다.
첫 번째 방법은 결합 대상으로 삼을 과거의 기간을 줄이는 방법입니다. 호텔의 가격을 예측할 때 5년 전 예약 이력보다는 최근 3년의 데이터만 참고하면 충분할 수 있습니다. 이러한 접근 방식은 예측 정확도가 높아지는 동시에 데이터 양이 줄어 계산 성능을 향상시킵니다.
두 번째 방법은 결합한 과거의 데이터에 집약 함수를 사용하여 데이터 수를 늘리지 않도록 하는 방법입니다. 호텔 가격대를 예측할 때 과거 데이터에서 예약 금약의 평균값만 있으면 충분할 것이고, 레코드를 결합 히지 않은 상태여도 상관이 없습니다. 이처럼 결합한 과거 데이터는 결합한 시점에 집약해두는 것이 중요합니다.
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
R전처리 - n건 전의 데이터 얻기 (0) | 2021.02.22 |
---|---|
R전처리 - 조건에 따라 결합할 마스터 테이블 변경 (0) | 2021.02.15 |
R전처리 - 결합 (0) | 2021.02.14 |
R전처리 - 순위계산 (0) | 2021.02.11 |
R전처리 - 최빈값 계산 (0) | 2021.02.09 |
댓글