고객의 과거 행동 데이터로부터 다음 달의 이용 횟수를 예측해봅시다.
여기서는 과거 6개월의 이용 데이터를 사용해 다음 달의 이용 횟수를 예측해 봅니다.
과거 데이터로부터 다음 달 이용 횟수를 예측하는 경우에 어떤 데이터를 준비하면 좋을지 생각 해봅시다. 이번 달이 2018년 10월이고, 2018년 11월의 이용 횟수를 예측한다고 생각해봅시다. 예측이 목적이므로 당연히 2018년 11월을 포함해 그 이후의 데이터는 사용할 수 없습니다.
여기서는 6개월의 이용 데이터를 학습에 사용합니다. 다시 말해서 지금까지의 회원 데이터와는 다른 특정 고객의 특정 월별 데이터를 작성해야 합니다. 먼저 uselog 데이터를 이용해 연월, 회원마다 집계해 봅시다.
▶ [코드스니펫] 이미 이전에 작성했었던 '연월' 코드
# usedate를 datetime으로 변환 후 '연월' 열을 생성.
uselog["usedate"] = pd.to_datetime(uselog["usedate"])
uselog["연월"] = uselog["usedate"].dt.strftime("%Y%m")
# 연월에 대한 각 회원별 사용 횟수 카운트
uselog_months = uselog.groupby(["연월","customer_id"],as_index=False).count()
uselog_months.rename(columns={"log_id":"count"}, inplace=True)
del uselog_months["usedate"]
uselog_months.head()
>>>>>>>>>>>>>>>>>>>>>>

(이 작업은 이미 이전 영상에서 동일하게 진행한 적이 있었던 작업입니다.)
연월 열을 작성하고 연월, 고객별로 log_id를 집계하여 연월 별 이용 횟수를 구했습니다.
그리고 이번 달부터 과거 6개월분의 이용 횟수를 저장합니다.
단, 여기서 이번 달의 대상은 2018년 10월부터 2019년 3월까지로 반년까지만 사용합니다.
ㅤㅤㅤㅤㅤㅤㅤㅤㅤX데이터 ㅤㅤㅤㅤㅤㅤㅤㅤㅤ y데이터
2018년 4월, 5월, 6월, 7월, 8월, 9월 ㅤ=> 2018년 10월 예측
2018년 5월, 6월, 7월, 8월, 9월, 10월 ㅤ=> 2018년 11월 예측
2018년 6월, 7월, 8월, 9월, 10월, 11월 => 2018년 12월 예측
2018년 7월, 8월, 9월, 10월, 11월, 12월 => 2019년 1월 예측
2018년 8월, 9월, 10월, 11월, 12월, 1월 => 2019년 2월 예측
2018년 9월, 10월, 11월, 12월, 1월, 2월 => 2019년 3월 예측
201810 데이터부터, 같은 행에 그 전 6개월의 이용횟수를 포함하도록 아래와 같이 데이터프레임을 만들고자 합니다.

우선 2018년 10월부터 2019년 3월까지의 연월 리스트를 뽑아봅시다.
우선 다음과 같은 코드는 모든 연월에 대한 값의 리스트를 뽑습니다.
year_months = list(uselog_months["연월"].unique())
year_months
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
['201804',
'201805',
'201806',
'201807',
'201808',
'201809',
'201810',
'201811',
'201812',
'201901',
'201902',
'201903']
6번 인덱스부터가 201810의 값을 가집니다.
year_months[6]
>>>>>>>>>>>>>
201810
이제 201810의 인덱스가 6임을 기억하고, for문과 range를 이용하면 201810부터
끝까지 값을 뽑아낼 수 있습니다.
for i in range(6, len(year_months)):
print(year_months[i])
>>>>>>>>>>>>>>>>>>>>>>>>>>.
201810
201811
201812
201901
201902
201903
6개월 간 이용횟수 추가 코드가 너무 복잡하기 때문에, 이해를 돕고자 아래와 같은 코드로 한번만 설명을 하겠습니다.
2018년 10월 데이터에 이전 6개월 간 이용횟수를 추가하는 코드입니다.
▶ [코드스니펫] 설명 보충용 코드