본문 바로가기

tidyverse14

R전처리 - n건 전의 데이터 얻기 데이터셋은 호텔 예약 레코드를 사용합니다. 예약 테이블의 모든 행에 고객이 이전에 예약했던 두 번의 예약 금액 정보를 첨부합시다. 예약 정보가 없으면 없음으로 표시합니다. R로 전처리하기 R에서도 lag() 함수가 제공됩니다. join() 함수를 사용할 필요는 없습니다. reserve_tb %>% group_by를 사용하여 customer_id로 데이터를 그룹화한다. group_by(customer_id) %>% # LAG 함수를 사용하여 두 건 이전의 total_price를 before_price로 구한다. # LAG 함수로 참조할 그룹의 데이터를 reserve_datetime이 오래된 순서로 정렬한다. mutate(befroe_price = lag(total_price, n =2, order_by =.. 2021. 2. 22.
R전처리 - 과거 데이터에서 정보 얻기 데이터 분석에서 시간 데이터는 많이 활용됩니다. 기초 분석이나 예측 모델을 구축할 때 과거의 데이터는 유용합니다, 하지만 시간 데이터는 쉽게 버그나 누수를 유발하므로 주의가 필요합니다. 호텔의 예약 레코드 데이터셋을 예로 해 고객이 다음에 예약할 호텔의 가격대를 예측하고 싶어 하는 상황을 생각해보면 먼저, 고객이 과거에 예약한 호텔의 가격대를 통해 예약할 호텔의 가격대를 예측할 수 있다는 가설을 세웁시다. 이 가설을 사용하여 예측 모델을 만들기 위해서는 예약 레코드 별로 해당 예약 고객의 과거 예약 레코드 정보를 결합한 데이터를 마련해야 합니다. 고객 A의 2017년 8월 예약 레코드에는 고객 A의 2016년 8월의 예약 레코드를 결합한 과거의 예약 레코드를 집약하여 과거 1년간 호텔의 평균 예약 가격을.. 2021. 2. 17.
R전처리 - 조건에 따라 결합할 마스터 테이블 변경 데이터 분석 전처리에서는 특별한 전처리가 요구되기도 합니다. 값에 따라 결합 대상을 변경하는 결합 처리도 그중 하나입니다. 결합 처리도 그중 하나입니다. 예를 들어 호텔 예약 사이트에서 호텔별로 다른 호텔을 추천하고 싶은 상황을 생각해봅시다. 특정 호텔 A에 대해서 A 호텔을 제외한 모든 호텔이 추천 대상이 되므로 추천 후보가 되는 호텔 수는 (모든 호텔 수 -1)입니다. 모든 호텔의 조합 (A에서 B의 추천과 B에서 A의 추천은 다른 것으로 생각합니다)에서 추천 순위를 생각하면 (모든 호텔 수) X (모든 호텔 수 - 1)에서 호텔별 우선순위를 매겨야 합니다. 모든 호텔 수가 1천 건 정도라도 1000x(1000-1)=약 100만 건으로 늘어납니다. 이 정도는 계산할 수는 있겠지만, 만약 건수가 1만 .. 2021. 2. 15.
R전처리 - 결합 마스터 테이블에서 정보 얻기 레코드 테이블과 마스터 테이블의 결합은 가장 자주 사용되는 결합입니다. 마스터 테이블은 마스터 데이터를 모아둔 테이블을 말하며, 여기서 마스터 데이터는 특정 요소에 대한 공통의 데이터를 모아둔 데이터를 말합니다. 예를 들어 고객 마스터 데이터에 고객별 이름이나 연령, 성별, 주소 등의 정보가 있는 것입니다. 보통 마스터 데이터는 마스터 테이블에서 유일한 ID를 가지는데 이 ID를 데이터 레코드 안에서 가져 데이터 레코드가 대상 마스터 데이터를 ID만으로 표현할 수 있습니다. 즉 고객의 구매 테이블에서 고객의 마스터 ID를 갖도록 해 구매 고객을 나타낼 수 있습니다. 데이터 레코드에 마스터 데이터의 정보를 첨부하고 싶다면 ID를 사용해 결합하면 됩니다. 레코드 테이블과 마스터 .. 2021. 2. 14.