데이터 분석 5-9 고객 행동 예측(4) - 예측 모델 만들기

addison·2022년 5월 14일
0

데이터 분석

목록 보기
48/48

09. 고객 행동 예측 (4) - 예측 모델 만들기

15) 다음 달 이용 횟수 예측을 위한 데이터 준비

고객의 과거 행동 데이터로부터 다음 달의 이용 횟수를 예측해봅시다.

여기서는 과거 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개월 간 이용횟수를 추가하는 코드입니다.

▶ [코드스니펫] 설명 보충용 코드

16) 선형 회귀로 다음달 이용 횟수를 예측해보자

0개의 댓글