구조화된 프레임워크 적용: 고객 이탈 예
이 예는 기계 학습 질문을 정의하는 과정을 단계별로 안내합니다. 비즈니스 지식을 이벤트 트리거, 대상, 예측 포인트 및 기능의 프레임워크와 결합하여 잘 정의된 질문을 구성하는 방법을 알아봅니다.
출발점은 "고객이 이탈할 것인가?"라는 비즈니스 사례입니다. 구조화된 프레임워크를 사용하여 이를 기계 학습 알고리즘으로 예측할 수 있는 보다 구체적인 것으로 요약할 것입니다.
이벤트 트리거
이벤트 트리거는 새 예측 만들기를 트리거하는 작업 또는 이벤트입니다. 이벤트 트리거를 "고객이 구독에 가입했습니다"로 식별합니다. 이는 새 고객이 만들어질 때 데이터에 표시됩니다. 이탈 여부를 고객 수준에서 예측하려고 하므로 각 행은 단일 고객을 나타내야 합니다.
비즈니스 지식을 사용하고 데이터를 확인하여 신규 고객 중 이탈이 가장 높다는 것을 알고 있습니다. 따라서 특히 신규 고객에게 집중하기로 결정했습니다. 이벤트 트리거는 신규 고객이 가입하고 각 고객이 구독하는 날부터 시작되는 개별 타임라인을 갖는 것으로 생각할 수 있습니다.
대상
대상은 예측하려는 결과입니다. 이탈을 예측하려고 하기 때문에 일반적으로 대상이 "고객이 이탈할 것인가?"라는 것을 알고 있습니다. 그러나 양질의 기계 학습 모델을 만들려면 더 구체적이어야 합니다. 우선 "이탈"은 고객이 구독을 취소하기 위해 호출하는 것을 의미한다고 결정합니다.
다음으로 취소 요청을 해야 하는 시간 프레임(기간)을 결정합니다. 취소한 여러 고객을 보면 일정이 일정하지 않다는 것을 알 수 있습니다. 일부 고객은 45일 후에 취소하고 다른 고객은 훨씬 늦게 110일 후에 취소합니다.
90일 무료 평가판 프로그램이 있으며 많은 고객이 평가판에서 이탈한다는 것을 알고 있습니다. 이 비즈니스 컨텍스트를 기반으로 초기 생각은 90일의 기간을 사용하는 것입니다. 취소할 것으로 예측되는 고객을 예측함으로써 해당 고객에게 미리 연락하고 인센티브(예: 할인 또는 추가 구독 기능)를 제공하여 이탈하지 않도록 장려할 계획입니다.
가입 고객이 취소한 후 며칠이 경과했는지 히스토그램으로 비즈니스 직관을 확인할 수 있습니다. 그림에서 지난 3년 동안 이탈한 모든 고객에 대한 데이터를 볼 수 있습니다.
90일 기간을 선택하여 시작하는 것이 좋은 것 같습니다. 그러나 히스토그램에 가로선을 그리면 90일 평가판 기간 후 며칠 동안 계속 이탈하는 고객이 많다는 것을 알게 됩니다. 그 이유는 신용 카드에 요금이 청구되거나 결제 방법이 며칠 후 거부되었다는 알림을 받은 다음 호출하여 구독을 취소하기 때문일 수 있습니다.
이러한 고객을 모델에 "이탈"한 고객으로 포함하려고 하므로 110일을 대상 기간으로 사용하는 것이 더 합리적이라고 결정합니다. 110일을 사용하여 무료 평가판 프로그램과 관련된 이탈이 있을 수 있는 대부분의 고객을 포착합니다.
이제 대상을 정의했으므로 데이터가 저장되는 위치와 데이터 집합에서 대상 열을 작성하기 위해 정리해야 하는 방법을 확인할 수 있습니다. 이 예에서는 다음을 수행합니다.
-
Salesforce에서 고객 상태를 가져옵니다.
-
추출 상태, 고객 생성 날짜 및 고객 취소 날짜:
-
추출된 데이터를 정리하고 대상 열로 변환합니다.
이제 이벤트 트리거(새 고객이 가입함) 및 대상(고객이 가입 후 110일 이내에 구독을 취소하기 위해 호출함)을 정의했습니다. 그림에서 타임라인에 설명되어 있습니다.
예측점
예측점은 기능에 대한 데이터 수집을 중단하고 각 행에 대한 대상을 예측하는 지정된 시간입니다. 예측점은 이벤트 트리거(구독 가입일)와 대상 기간(가입 후 110일) 사이의 어느 위치에나 속할 수 있습니다. 시작점을 선택하기 위해 수행하려고 하는 작업에 대해 생각할 수 있습니다.
이 예에서 고객 지원 팀은 고객이 이탈할 것으로 예측되면 유지 제안을 통해 고객에게 연락하기 위해 30일을 요청할 수 있습니다. 즉, 늦어도 대상 기간 30일 전, 즉 80일까지 예측해야 합니다.
예측점으로 80일을 선택하면 신규 고객이 들어올 때 데이터를 수집하는 데 80일이 주어집니다. 이벤트 트리거와 예측점 사이의 이 시간 프레임을 데이터 누적 창이라고 합니다. 데이터 누적 기간 동안 수집된 데이터는 기능을 생성하는 데 사용됩니다.
80일을 예측점으로 사용하면 예측점과 대상 기간 사이의 시간인 30일 작업 기간이 남습니다. 이는 고객 지원 팀이 고객에게 연락하기 위해 요청한 30일 창입니다.
예측에 대한 작업을 취하는 데 필요한 최소 작업 창에 대해 생각하는 것 외에도 이탈까지 일수에 대한 히스토그램도 살펴봐야 합니다. 80일 예측점을 적용하면 다음과 같은 결과를 가져올 수 있습니다.
이 히스토그램을 보면 80일 예측점을 사용하는 것이 비즈니스 가치를 극대화하지 못한다는 것을 알 수 있습니다. 80일 분량의 데이터가 모델의 정확도를 높이는 데 도움이 되지만 실행 가능성에 대한 비용이 많이 듭니다.
-
첫째, 많은 고객이 80일째에 이미 이탈했기 때문에 데이터 누적 기간 동안(예측도 하기 전에) 이탈했을 것입니다. 이는 또한 예측을 하기 전에 결과를 알 수 있기 때문에 교육 데이터 집합에 포함하고 싶지 않다는 것을 의미합니다.
-
둘째, 많은 고객이 80일에서 90일 사이에 이탈하기 때문에 고객 성공 팀은 30일 동안 고객에게 연락할 수 없습니다.
예측점을 60일로 이동하면 정확도와 실행 가능성 간의 균형이 더 잘 맞습니다. 모델의 기능에 사용할 데이터를 수집하는 데 아직 60일이 남아 있지만, 이제 이탈할 것으로 예측되는 대부분의 고객에게 연락할 수 있도록 고객 성공 팀에게 30일이 있을 만큼 일찍 예측하고 있습니다. 데이터 누적 창을 줄임으로써 모델 정확도는 약간 감소하지만 훨씬 더 실행 가능한 예측을 기대할 수 있습니다.
기능
이벤트 트리거, 대상 및 예측점이 정의되었으므로 데이터 집합에 마지막 부분인 기능을 추가할 준비가 되었습니다. 기능은 기계 학습 알고리즘이 일반적인 패턴을 학습하는 교육 데이터 집합의 각 데이터 행에 대해 알려진 특성 또는 관찰입니다. 그런 다음 알고리즘은 적용 데이터 집합에 새로운 데이터 행이 제시될 때 이러한 기능을 사용하여 예측을 수행합니다.
결과에 영향을 미치는 요소에 대한 비즈니스 지식을 기반으로 하는 가설로 기능을 생각하십시오. 이 예에서 일부 기능은 고객 위치, 리드 소스, 가입 월, 로그인 수 또는 활성 사용자 수일 수 있습니다.
기능에는 두 가지 범주가 있습니다.
-
고정 기능은 시간이 지나도 변경되지 않기 때문에 가장 간단합니다. 이 예에서 고객 위치(가입 시), 리드 소스 및 가입 월은 모두 고정 기능으로 간주됩니다. 고객이 가입하자마자(이벤트 트리거에서 바로) 알 수 있으며 예측점을 어디에 두든 관계없이 알려지고 일정하게 유지됩니다.
-
창 종속 기능은 약간 더 복잡합니다. 이벤트 트리거와 예측점 사이에 수집된 정보를 기반으로 수집되는 기능입니다. 시간 내에 알려진 데이터만 사용하고 있는지 확인해야 합니다. 그렇지 않으면 모델에 데이터가 유출될 수 있습니다. (자세한 내용은 데이터 유출을 참조하십시오.)
간단한 모델은 0일차에 알려진 정보, 즉 고정된 기능만 사용할 수 있습니다. 이렇게 하면 그림과 같이 0일차에 예측점이 제공됩니다.
결과 데이터 집합은 다음과 같습니다.
그러나 예측점이 60일차인 예에서와 같이 고객이 구독한 후 수집된 데이터를 사용할 수도 있습니다.
이제 고객이 등록한 후 처음 60일 동안 수집된 정보를 사용하여 모델에 창 종속 기능을 추가할 수 있습니다. 이 모델에 대한 데이터 집합은 다음 표와 같을 수 있습니다. 이제 기간 종속 기능인 처음 60일 로그인 및 60일 활성 사용자가 포함됩니다.
이 예에서 기능은 전체 데이터 누적 창을 반영합니다. 더 작을 수도 있습니다. 예를 들어, 기능에 예측점을 지난 정보가 포함되지 않는 한 처음 10일 동안의 로그인 또는 30~60일 동안의 로그인을 측정할 수 있습니다.
기간 종속 기능은 날짜가 필요하고 데이터 유출를 방지하기 위해 데이터 누적 창에 속하도록 추가 작업이 필요하기 때문에 수집하기가 더 복잡할 수 있습니다. 하지만 예측 시점에 훨씬 더 가깝게 수집된 정보를 반영할 수 있기 때문에 가장 강력한 기능 중 일부가 될 수도 있습니다.
그 결과 기계 학습 질문
"고객이 이탈할까요?"라는 간단한 사용 사례로 시작했습니다. 그런 다음 개별 고객 수준에서 예측하려고 했으므로 이벤트 트리거를 "신규 고객 가입"으로 정의했습니다.
"고객이 구독을 취소하기 위해 호출함(예 또는 아니요)"이라는 특정 결과로 대상을 정의하고 기간을 110일(대부분의 평가판 고객이 취소한 시간)로 설정했습니다.
지난 3년간 가입 고객이 취소 호출을 한 후 며칠이 지났는지 히스토그램을 보고, 가입 후 60일을 예측점으로 결정했습니다. 이렇게 하면 예측을 하기 전에 60일 동안 정보(데이터 누적 기간)를 수집할 수 있지만, 고객 지원 팀은 이탈을 줄이기 위해 예측 작업을 수행할 수 있습니다.
마지막으로 기능을 생성하기 위해 60일 이전에 사용할 수 있는 고객에 대한 데이터를 수집했습니다.
그 결과 기계 학습 질문은 다음과 같습니다. "처음 60일의 활동이 지나면 고객이 110일까지 호출하여 취소할까요?"
그리고 이제 자동화된 기계 학습에 사용할 준비가 된 데이터 집합은 아래 표와 같습니다. 위치, 리드 소스, 조인한 달 및 구독 금액은 고정 기능이고, 처음 60일 로그인 및 60일 활성 사용자는 기간 종속 기능이고, 110일까지 이탈은 대상 열입니다.