#9기임팩트 #AI임팩트
안녕하세요 AI 임팩트에서 데이터 분석 파트 글 작성하는 샘호트만 입니다.
이전 글 내용을 아주 간단히 요약하면
데이터 분석을 하는데 있어서 AI가 Full-Stack으로 잘할 수 있는 부분은 없다. AI가 잘하는 영역(자연어 과 인간이 잘하는 영역을 나눠서 분업화하여 접근해야한다.
GPT 4.0 시스템 프롬프트에서 Python 부분은 60초 이상 run이 되지 않는다. 따라서 가지고 있는 데이터로 머신러닝 영역은 포기하는 것이 좋다. (적은 데이터로 Tree model을 활용하면 과적합이 일어나기 쉽기도 하며 학습과 추론은 추천하지 않는다.)
절대 좋다고 생각하는 AI 알고리즘이 주가 되어선 안되고, 가지고 있는 데이터가 더 중요하다.
데이터 시각화와 전처리 부분을 레버리지하는 것이 상당히 좋다. 개인적으로 이 부분이 ADA 영역에 뛰어나다.
적은 데이터로 기초통계와 여러 검정법, 통계 분석을 활용하는 것이 좋다. 하지만 통계에 대해 이론적인 배경이 없는 사람들이 접근할 때에는 통계적인 가정을 충족하는지 확인하면서 사용하는 것이 중요하다.
이제 오늘 글은 정형 데이터를 활용하여 실험해보겠습니다.
Data 소개
오늘은 이커머스 영역 임의의 데이터를 간단하게 준비하였습니다. (출처)
글로벌은 캐글이 공부하기 좋고, 국내는 데이콘이 개인적으로 실험 데이터를 공수하기 좋다고 생각합니다.
우선 다룰 데이터 5개에 대해서 데이터 일부와 개수들을 따로 보여드리겠습니다. 제가 따로 role이나 context, goal 등 따로 설정하기 싫어서 제가 만든 데이터 분석 서포터 gpts를 활용하기로 했습니다. 이번에 다루는 데이터는 정형데이터이고, 데이터의 수와 일부분만 보여드리겠습니다.
(여기까지는 여러분들 에게 어떤 데이터가 있는지 보여주기 위해서 돌린 내용입니다.)
ADA(Advanced Data Analysis) 시작하기
이제 분석을 해보겠습니다. 결론적으로는 5개 데이터 전부 사용하지는 않습니다.
이제 아래 캡처 내용은 하나의 세션에서 작성했음을 알립니다.
한글 폰트가 동작하게 koreanize matplotlib whl 파일 라이브러리를 세팅했습니다. 그리고 해당 데이터를 파악하라고 시켰습니다.
GPTs에 세팅한대로 데이터 파악하고 간단한 아이데이션과 분석 방향을 해주는 것을 확인했습니다. 저는 여기서 분석 방향 제안에서 ‘고객 세그먼트 분석’을 Deepdive를 해야겠다는 마음을 먹었습니다.
데이터들을 중에 간단하게 쓸 수 있는 것과 없는 것들을 생각하고 나름의 flow를 구상했습 니다. 제가 저번 편에서 말했던 부분에서 인간이 나서는 부분입니다. 아래 초록색 부분은 human, 아무것도 칠하지 않은 부분을 ADA 적용합니다.
저는 은행, 보험, 통신, 제조, 공공 다양한 섹터에서 AI 프로젝트를 해봤지만, 유통은 한번도 해보질 않았습니다. 마케팅은 이제 공부를 하고 있는 수준입니다. 그래도 꼴에 어디 주어들은게 있어서 RFM을 해봐야겠다~ 라는 생각을 가졌습니다.
그래서 분석 시나리오를 이야기를 대충 짜고, 가격 데이터가 핵심이니 시간에 따른 거래량 확인을 부탁했습니다. ADA가 좋은 것이 자연어로 유사한 Column을 알아서 찾아서 적용해서 분석을 수행해준다는 점입니다.
위 차트에 대해서 이야길 부탁했습니다. 제 GPTs에는 일단 업로드된 데이터 셋 안에서 분석 방향을 설정해달라고 해서 말도 안되는 분석 방법 가이드를 안 줘서 좋은 것 같습니다. (단점으로는 창의성 있는 분석 방법을 얻을 수 없다는 점입니다. 이 부분은 꼬리질문하면서 더 파헤쳐야할 것 입니다.)
성별과 고객 거주지 분포를 부탁했지만 크게 유의미하지 않아 생략했습니다. 저는 본론으로 RFM을 계산하고 싶다고 이야길 했습니다. RFM은 최신성, 빈도, 금액 3개 팩터를 결합하여 고객을 나누는 전통적인 CRM 방법 중 하나 입니다. 초개인화 방식의 마케팅은 데이터도 많이 필요하고 딥러닝 레벨로 올라가야하는데, 스몰 비즈니스를 하는 사람에게 있어서 이 정도의 고객 데이터는 RFM도 나쁘지 않은 방식이라고 생각합니다.
무엇보다 데이 터가 잘 붙어있음을 확인 했습니다. (이때 제가 후회한 건 고객 성별이랑 고객 지역까지 살려 뒀어야했다는 점입니다.)
기초 통계량과 Boxplot 계산을 부탁했습니다. 해석 또한 부탁했습니다.
이제 RFM 점수를 부여하고자 합니다. 이건 보통 4점 척도로 할 수도 있고, 데이터가 많다면 10점 Level까지 나누는 것이 있더라고요. 저는 5점 척도로 나누고자 합니다. 그리고 rough하게 20% 백분위수 단위로 점수를 부여하게 했습니다.
솔직히 여기서 더 Deepdive를 한다면
이상치에 대한 처리를 어떻게 논리적으로 할 것인가? (Robust Scaling나 양 극단 Trimming 등)
꼭 20% 단위로 나누어야하나? 더 최적화된 Threshold 값이 없을까?
이렇게 생각할 수 있습니다. 하지만 이 부분은 저는 스킵 했습니다. (실제 필드에서 이렇게 rough하게 하면 혼날 수 있습니다 ㅎ)
무엇보다 5점 척도를 편하게 값을 넣어져 있는 것을 확인 했습니다.
이제 라벨을 정의를 하고자 합니다. 저는 여기서 ADA 기능 인상 깊었는데요, 어떤식으로 고객 세그먼트를 알아서 정의하는 모습이 인상 깊었습니다.
저는 위에서 정의한 세그먼트가 흡족스러워서 할당해달라고 했습니다. 알아서 몇 명인지 세어주는 점도 마음에 들었지만
이렇게 제가 if-else 하면서 빠진게 없는지 검수할 필요없이 나눠주는 부분이 아주 맘에 듭니다. 이 맛에 ADA를 사용한다고 해도 무방하다고 할 수 있습니다. 실제로 위와 같이 코드를 짜면 실수할 수 있습니다.
lost 고객이 제일 많은 것을 확인 했습니다. 나름 가이드를 주는 모습도 괜찮았습니다.
"충성 고객" 세그먼트에 많은 고객이 있는 경우, 이들의 충성도를 유지하고 증진시키기 위한 프로그램을 강화할 수 있습니다. 반면, "신규 고객"이나 "잠재적 충성 고객" 세그먼트에 많은 고객이 있다면, 이들을 장기적인 충성 고객으로 전환하기 위한 전략을 모색할 수 있습니다.
저 같으면 여기서 더 반박을 제시할 수 있는 부분에 대해서 추가적으로 물어봤을 수 있겠다~ 라는 생각이 들었습니다.
금액과 고객을 곱해서 트리맵으로 보고 싶다고 했습니다. 근데 모듈 없이는 안된다는 것을 깨달았습니다.
이럴 때에는 squariy pypi 찾아가서 whl 파일을 받아서 그리게 시켰습니다. 로얄 고객과 VVIP 의 압도적인 힘을 보았습니다.
인사이트 추가 발굴 시켰습니다. 저는 마케팅을 1도 모르는데 4번 같은 case에 대해서는 생각을 전혀 못해봤을 것 같습니다. (이런 점을 보면 또 gpts 괜찮게 만든 것 같다는 생각이 드네요 ㅎㅎ..)
고객 ID가 Key인 데이터를 export 했습니다. 더 많은 데이터들을 끌고 와서 고객을 기준으로 데이터를 merge한다면 더더욱 좋은 인사이트들을 발굴할 수 있다고 생각합니다.
RFM이 반영된 1,468 가상의 유저 데이터를 획득했습니다.
Conclusion
저 나름대로 결론을 내려보면
일단 컬럼명을 대충 말해줘도 맥락에 맞게 잘 찾아서 분석해준다. 이 부분은 상당히 편리하다.
귀찮은 노가다성 if - else 코드도 잘 짜준다. 실수를 하지 않게되는 것이 너무 좋다.
나름대로 gpts instructions 세팅해준대로 분석을 해준다. (틈새 어필)
1인 기업가나 스몰비즈니스 하시는 분들은 어떤 유형의 데이터든, 잘 모아놔야겠다는 생각이 들었습니다. 간단한 RFM 기법도 스몰 데이터에서는 나름 효과가 있을 것 같다~ 라는 느낌을 받았습니다.
지금 그냥 교보재 수준의 데이터를 다루었지만, 실제 필드에서 숫자를 다루는 내용은 함부로 의사결정과 과신해서는 안된다고 생각한다.
중간중간 AI가 해석하는 것은 너무 rough한 부분이 많다. 추가적인 인사이트를 얻으려면 분석 파일럿이 도메인 전문가이면서 통계 또한 높은 혜안이 있다면 더 양질의 분석이 가능하다.
분석 잘 하려면 도메인(이번 글을 예로 든다면 이커머스, 유통 관련 지식 필요)과 통계 지식 정도는 공부를 해두는게 상당히 좋고 엣지 있게 사용할 수 있을 것으로 기대된다.
확실히 ADA 위에서는 정형데이터는 상대적으로 비정형 데이터에 비해 다루기 쉽다.
다음 글에서는 비정형 데이터로 찾아뵙겠습니다.