Skill set for data science (출처: Towards data science)
바로 도메인 지식을 활용하여 데이터를 필요로 하는 곳에 “정보"로 전달(스토리텔링)하는 영역입니다. 정보라는 것은 주위의 수 많은 데이터 중 우리에게 필요한 것을 추스려 이해하기 쉽게 표현한 것을 말할텐데요. 위의 예시에서는 아마도 “이 고객은 높은 확률로 이탈했습니다.” 혹은 “x일 동안 구매가 없으면 이탈 혹은 비활성화 고객으로 분류하세요.” 등이 몇 가지 궁금증에 대한 대답이 될 것 입니다.
저는 이 문제를 아래와 같은 두가지 방법으로 재해석해서 접근해 봤습니다.
[문제1] 생존률(혹은 이탈률)이 얼마 이하면 이탈이라고 보면될까?
이를 답하기 위해 저는 생존률이 특정 임계치(threshold) 이하면 이탈, 이상이면 생존이라고 라벨링을 한 후 임계치를 조정해가면서 confusion matrix를 만들어 봤습니다.
confusion matrix feat. by GridSearch (출처: 네이버 블로그 산소소년)
f1-score를 보시면 생존률 임계치 0.35(35%)를 기점으로 정점을 찍고 전후로 급격한 변화가 일어나고 있습니다. 이를 통해,
고객사 ‘A’의 고객들은 생존률 35%이하라고 예측했을 때 이탈했다고 보면 될 것 같습니다.
또 다른 고객사의 데이터를 이용해서 grid search를 해보니 다음과 같은 결과가 나왔습니다.
confusion matrix2 (출처: 네이버 블로그 산소소년)
다른 업종인 고객사 ‘B’에서는 생존률 70% 이하일 때 이탈이라고 봐야겠네요. 이제 우리는 "고객 a의 생존 스코어가 0.7이야!"라고 말하는 것이 아닌 "고객 a의 생존률이 70%일 때 이탈했을 거야!"라고 말할 수 있습니다.
[문제 2] 얼마동안 활동이 없는 고객을 이탈이라고 보면 될까?
이 문제에 대한 답을 찾기 위해 아래와 같은 데이터를 생성해 봤습니다.
비활동일 대비 누적고객 수 (출처: 네이버블로그 산소소년)
처음 표로 기존 구매 고객 중 190일 이상 구매가 없을 때 대부분(90%)의 고객이 이탈하는 것을 확인할 수 있으며 다음 표로 재구매 고객은 대부분(90%) 한달 이내로 재구매를 일으킨다는 것을 확인할 수 있었습니다.
이런 조사 후에 우리는 아래 그림처럼 고객사 별 "맞춤형 인디케이터"를 만들어 고객들의 분포를 확인해보고 타겟 전략을 수립할 수 있을 것 같습니다.
이탈 인디케이터 (출처: 네이버블로그 산소소년)
이런 전략을 세울 수 있겠죠. "이탈할 가능성이 높은 75일 이내의 고객 중 Monetary 랭킹이 상위 20% 이내에 해당되고, AOV가 2만원 이상인 고객에게 배송료 무료쿠폰을 이메일로 보내자!"
여기까지 간략하게나마 AI 등의 기술로 산출한 데이터를 단순한 수치전달이 아닌 어떻게 하면 좀 더 쉽게 잘 활용할 수 있도록 꾸며볼 수 있을까에 대한 고민과 수행결과를 예시를 곁들여가며 말씀 드려봤습니다.
물론, "이게 정답이다!", "이렇게 해야한다!"라는 말씀을 드리는 것이 아닌 인사이트의 전달력을 높이기 위한 아답터 역할을 하는 것도 데이터 사이언티스트의 업무 영역이며 이는 구슬을 꿰어 보배를 만드는 중요한 마지막 과정 이기에 많은 고민이 필요한 부분이라는 의견을 드리고 싶었고요. 눈치채셨겠지만 '빅데이터, AI를 하다보면 뭔가 나오겠지?'라는 막연한 접근보다는 특정한 목표를 달성하기 위해 과제를 수행하다 보니 'AI와 빅데이터가 필요하더라'라는 시도가 험난한 과제를 성공으로 이끌 수 있는 지름길인 것 같다는 의중이 있기도 하고요 ^^;;
또, 마지막으로 숫자 하나로 이처럼 많은 것을 표현할 수 있다라는 것도 조심스럽게 말씀 드려봅니다!
그럼 두서 없었지만, 조금이나마 도움이 되셨으면 좋겠다는 바람과 함께 긴글 읽어 주셔서 감사하다는 말씀 전하며 글을 마치겠습니다.
감사합니다.
우리는 일상 중 판단하기 어려운 문제의 해답을 찾기 위해 AI를 이용하는 경우가 많습니다.
아래에서 말씀드릴 '내 고객이 이탈했는가? 혹은 언제 이탈할까?' 를 예측하기 위해 제가 시도해본 여러 방법 또한 이에 대한 좋은 예가 될 것 같습니다.
이번 글에서는 저의 과거 고민 과정을 설명 드리며 글을 이어나가 보겠습니다. 아마도 우리는 좋은 데이터를 준비하고 적합한 모델을 찾아 연구하는 과정을 반복할 텐 데요. AI 과제를 많이 수행해보신 분들은 아시겠지만 이러한 여러 우여곡절 끝에 우리가 얻는 결과물은 고객별 이탈확률인 0~1.0까지의 값이 전부일 것 입니다.
“A고객의 이탈확률은 0.7(70%) 입니다.”
고객사나 서비스에서 원하는 데이터가 이것일까요? 또, 카페의 이탈 확률 0.7과 종합쇼핑몰의 이탈 확률 0.7은 같은 의미일까요? 뭔가 조금 부족한 느낌이 듭니다. 여러분들도 자주 봐왔던, 오래전부터 데이터 사이언티스트를 정의할 때 인용되는 아래 그림을 보시면 이 부족한 것을 채워줄 수 있는 단계가 아직 남아 있음을 확인할 수 있습니다.
바로 도메인 지식을 활용하여 데이터를 필요로 하는 곳에 “정보"로 전달(스토리텔링)하는 영역입니다. 정보라는 것은 주위의 수 많은 데이터 중 우리에게 필요한 것을 추스려 이해하기 쉽게 표현한 것을 말할텐데요. 위의 예시에서는 아마도 “이 고객은 높은 확률로 이탈했습니다.” 혹은 “x일 동안 구매가 없으면 이탈 혹은 비활성화 고객으로 분류하세요.” 등이 몇 가지 궁금증에 대한 대답이 될 것 입니다.
저는 이 문제를 아래와 같은 두가지 방법으로 재해석해서 접근해 봤습니다.
[문제1] 생존률(혹은 이탈률)이 얼마 이하면 이탈이라고 보면될까?
이를 답하기 위해 저는 생존률이 특정 임계치(threshold) 이하면 이탈, 이상이면 생존이라고 라벨링을 한 후 임계치를 조정해가면서 confusion matrix를 만들어 봤습니다.
confusion matrix feat. by GridSearch (출처: 네이버 블로그 산소소년)
f1-score를 보시면 생존률 임계치 0.35(35%)를 기점으로 정점을 찍고 전후로 급격한 변화가 일어나고 있습니다. 이를 통해,
고객사 ‘A’의 고객들은 생존률 35%이하라고 예측했을 때 이탈했다고 보면 될 것 같습니다.
또 다른 고객사의 데이터를 이용해서 grid search를 해보니 다음과 같은 결과가 나왔습니다.
confusion matrix2 (출처: 네이버 블로그 산소소년)
다른 업종인 고객사 ‘B’에서는 생존률 70% 이하일 때 이탈이라고 봐야겠네요. 이제 우리는 "고객 a의 생존 스코어가 0.7이야!"라고 말하는 것이 아닌 "고객 a의 생존률이 70%일 때 이탈했을 거야!"라고 말할 수 있습니다.
[문제 2] 얼마동안 활동이 없는 고객을 이탈이라고 보면 될까?
이 문제에 대한 답을 찾기 위해 아래와 같은 데이터를 생성해 봤습니다.
비활동일 대비 누적고객 수 (출처: 네이버블로그 산소소년)
처음 표로 기존 구매 고객 중 190일 이상 구매가 없을 때 대부분(90%)의 고객이 이탈하는 것을 확인할 수 있으며 다음 표로 재구매 고객은 대부분(90%) 한달 이내로 재구매를 일으킨다는 것을 확인할 수 있었습니다.
이런 조사 후에 우리는 아래 그림처럼 고객사 별 "맞춤형 인디케이터"를 만들어 고객들의 분포를 확인해보고 타겟 전략을 수립할 수 있을 것 같습니다.
이탈 인디케이터 (출처: 네이버블로그 산소소년)
이런 전략을 세울 수 있겠죠. "이탈할 가능성이 높은 75일 이내의 고객 중 Monetary 랭킹이 상위 20% 이내에 해당되고, AOV가 2만원 이상인 고객에게 배송료 무료쿠폰을 이메일로 보내자!"
여기까지 간략하게나마 AI 등의 기술로 산출한 데이터를 단순한 수치전달이 아닌 어떻게 하면 좀 더 쉽게 잘 활용할 수 있도록 꾸며볼 수 있을까에 대한 고민과 수행결과를 예시를 곁들여가며 말씀 드려봤습니다.
물론, "이게 정답이다!", "이렇게 해야한다!"라는 말씀을 드리는 것이 아닌 인사이트의 전달력을 높이기 위한 아답터 역할을 하는 것도 데이터 사이언티스트의 업무 영역이며 이는 구슬을 꿰어 보배를 만드는 중요한 마지막 과정 이기에 많은 고민이 필요한 부분이라는 의견을 드리고 싶었고요. 눈치채셨겠지만 '빅데이터, AI를 하다보면 뭔가 나오겠지?'라는 막연한 접근보다는 특정한 목표를 달성하기 위해 과제를 수행하다 보니 'AI와 빅데이터가 필요하더라'라는 시도가 험난한 과제를 성공으로 이끌 수 있는 지름길인 것 같다는 의중이 있기도 하고요 ^^;;
또, 마지막으로 숫자 하나로 이처럼 많은 것을 표현할 수 있다라는 것도 조심스럽게 말씀 드려봅니다!
그럼 두서 없었지만, 조금이나마 도움이 되셨으면 좋겠다는 바람과 함께 긴글 읽어 주셔서 감사하다는 말씀 전하며 글을 마치겠습니다.
감사합니다.