머신러닝 알고리즘을 활용하여 온라인 사이트에 접속한 고객의 전환을 예측하는 테스트를 하였습니다. 고객 전환여부를 0, 1의 더미변수로 라벨링 하였습니다. 그리고 로그데이터를 통해 어떤 고객이 전환할 것인지를 학습하도록 하였습니다. 데이터는 GA를 통해 수집하였습니다.

 

먼저, 학습에 활용된 데이터 입니다.

기본 웹사이트 프로파일

유입경로에 따른 사용자

성과

기간

2016.8~2018.4

Organic Search

759,171

수익

$9,203,274.38

사용자

1,668,539

Social

363,521

전환율

2.29%

신규 사용자

1,648,685

Direct

281,996

거래 수

51,498

세션

2,250,073

Referral

184,878

객단가

$178.71

사용자당 세션 수

1.35

Paid Search

44,078

 

 

세션당 페이지 수

4.22

Display

40,635

 

 

이탈률

47.23

Affiliates

35.926

 

 

평균 세션 시간

227

Other

105

 

 

모바일 비중

27.59%

전체

3,448,502

 

 

 

우선 각 유입채널과 로그데이터가 전환고객과 비전환 고객 간에 차이가 있는지 확인하였습니다. 당연히, 차이가 있습니다. 표의 값은 그룹의 평균 값이며, F는 평균차이 검증 값 입니다.

변수명

비전환

전환

F

신규방문

.7694

.3930

14,600**

방문횟수

2.3165

4.0298

616.1**

페이지뷰

3.4407

26.9106

281,045**

체류시간()

113.9927

1,022.44

129,741**

Organic Search

.4340

.2973

1,398**

Social

.2099

.0086

4,531**

Direct

.1598

.1802

58.17**

Referral

.1199

.4632

20,192**

Paid Search

.0265

.0383

98.06**

Display

.0302

.0110

230.7**

Affiliates

.0194

.0009

334.5

Other

8.048395e-05

5.388221e-05

.162

 

최종적으로 머신러닝 모델로 학습한 데이터는 다음과 같습니다. 지역, 디바이스, 운영체제 이런 변수들을 더미변수로 변환하여 투입하였습니다. 총 변수는 686개이며, 데이터는 374개 입니다. 

변수명

Min

Max

Mean

Standard Deviation

전환유무

0

1

.05

.31

방문횟수

1

456

5.71

18.93

페이지뷰

0

500

5.45

9.30

세션품질

0

100

3.59

12.59

체류시간()

0

19,017

223.50

520.13

이전 전환 수

0

21

.02

.16

유입채널

Organic Search, Social Direct, Referral, Paid Search, Display, Affiliates, Other 8

브라우저 종류

Chrome, Safari, Edge, Samsung internet, Opera Mini, Muffin, Ye 33

운영체제 종류

Macintosh, iOS, Chrome OS, Windows, Tizen, Samsung, Xbox, Nintendo Wii 19

디바이스 종류

Desktop, Mobile, Tablet 3

접속 국가

United States, Canada, Philippines, Mexico, India, Japan, Israel, Austria 196

접속 도시

New York, California, Massachusetts, Gujarat, Taipei City, Tokyo 421

전체 변수 및 데이터

변수 : 686, 데이터 수: 374,749

 

다음 어떤 머신러닝의 예측성과가 가장 높은지 CARET 패키지를 활용하여 비교하였습니다. ROC기준 XGB모델이 가장 우수한 것으로 나타났습니다.

번호

머신러닝 알고리즘

ROC

Sens.

Spec.

1

Classification tree(TREE)

.8133

.7030

.8419

2

Artificial neural network(NNET)

.8367

.6744

.8815

3

k-nearest-neighbor(KNN)

.8323

.6913

.8332

4

Logistic regression(LOGIT)

.7386

.7410

.7113

5

Support vector machine with linear kernel(SVML)

.8318

.6881

.8542

6

Random forest(RF)

.8544

.7017

.8702

7

Gradient Boosting Algorithm(GBM)

.8640

.7356

.8451

8

eXtreme Gradient Boosting(XGB)

.8643

.7235

.8560

 

XGB를 통해 예측을 실제 해보기로 하였습니다. 데이터를 7/3으로 구분하여 학습용/검증용으로 구분하였습니다. 그리고 데이터의 불균형(전환고객의 수가 훨씬 적음)을 완화하기 위해 Pos에 가중치를 주고, SMOTE 샘플링 등을 활용하였습니다.

 

Data

원본 데이터 

Down Sampling 

SMOTE Sampling 

Accuracy
(95% CI)

.7348
(.7322, .7374)

 .7324
(.7298, .7350)

.7417
(.7391, .7442)

Kappa

.0921

.0902

.0944

Sensitivity

.7320

.7296

.7392

Specificity

.8501

.8444

.8430

Pose Pred Value

.9950

.9948

.9949

Neg Pred Value

.0714

.0704

.0727

Prevalence

.9763

.9763

.9763

Detection Rate

.7146

.7123

.7217

Detection Prevalence

.7182

.7160

.7254

Balanced Accuracy

.7910

.7870

.7911

 

SMOTE 샘플링 방식의 데이터 처리가 가장 정확도가 높았습니다. 정확도는 74%정도로 나오네요.

 

 

머신러닝 모델을 해석하기 위해 waterfall 그래프를 그려보았습니다. 모바일 접속자는 전환 확률에 부정적인 영향을 미치고, Hits수는 높아집니다. 

 

마지막으로 리타겟팅 광고에 대해 적용가능성을 확인해보았습니다. Display 광고 유입 데이터만 학습 후 예측한 결과 입니다. 71%의 정확도가 나왔습니다. 즉, 사이트에 방문한 고객 중 리타겟팅을 통해 유입시켰을 때, 71%의 확률로 구매를 한다는 것 입니다.

 

Data

SMOTE Sampling

Accuracy
(95% CI)

.7147
(.7120, .7173)

Kappa

.0668

Sensitivity

.7143

Specificity

.7276

Pose Pred Value

.9908

Neg Pred Value

.0581

Prevalence

.9763

Detection Rate

.6974

Detection Prevalence

.7038

Balanced Accuracy

.7209

 

데이터의 수와 파라미터 최적화를 통해 정확도를 훨씬 더 개선할 수 있을 것으로 생각합니다.