데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[분석5기] Dreaming the Dream Team의 신간 서적의 판매량 예측 모형 (2회)

데이터 이야기
작성자
dataonair
작성일
2014-08-06 00:00
조회
5088


Dreaming the Dream Team의 신간 서적의 판매량 예측 모형 (2회)

분석에서 전문가 1명보다 아마추어 여러 명이 강한 이유



>> [인터뷰] KPDCH (빅데이터 아카데미 분석 전문가 과정 5기)

전체 시장의 50% 이상을 점유하며 어느 나라보다 활성화된 한국의 인터넷 출판 유통 분야. 하지만 인터넷 서점에서는 신간 판매 예측은 담당 MD들의 경험과 직감이 더 크게 작용하고 있다. 경험의 한계를 뛰어넘자! 빅데이터 분석 전문가 과정 5기 KPDCH팀이 ‘신간 서적의 판매량 예측 모형’을 개발하여 경험과 직감의 한계 뛰어넘기에 도전했다.



지난 첫 연재에서 어떤 과정을 통하여 프로젝트 주제를 선정했는지와 목표 달성을 위한 분석방법 선정까지 알아보았지요. 자세히 소개하면, 끝이 없지만 팀 프로젝트를 진행했을 때의 느낌을 빼놓지 않고 전달하려고 노력했고요. 이 글 또한 독자와 필자들의 교감 속에서 최종적으로 완성될 것이라고 봅니다. 댓글 한마디가 큰 격려가 됩니다. 보시면서 궁금하거나 아이디어가 있다면 어느 것이라도 댓글로 참여해 주세요.



무한 삽질의 반복, 데이터 분석

데이터 분석을 처음 해보는 분이라면 누구나 저희와 비슷한 과정을 겪게 될 것이라 생각합니다. 특히 R을 새로 배워야 한다면 더더구나 그러할 텐데요. 저희에게도 R은 생소했고, 회귀분석 방법론은 생각보다 방대했습니다. 프로젝트 해결을 위해 공부를 많이 하고 시행착오도 수없이 겪어야 했는데요. 최종 보고서와 함께 제출한 R 스크립트가 1000줄이 넘었습니다. 약간의 엄살을 더하면, 데이터 분석 과정에서 작성한 R 스크립트가 1만 줄이 넘었을 것입니다.

이렇게 부족한 저희가 무사히 프로젝트를 마무리 할 수 있었던 것은 멘토와의 만남이 결정적이었습니다. 통계학 박사이면서 실력 있는 데이터 마이닝 전문가인 멘토가 매번 올바른 방향을 제시해준 덕분에 시행착오의 횟수를 크게 줄일 수 있었습니다. 첫 미팅 때 분석 방법론으로 분류분석이 아닌 회귀분석이 더 좋겠다는 의견도 주었고, 다양한 회귀분석의 소개와 모형의 성능을 판별하는 여러 가지 기준에 대해서도 친절하게 소개해 주었습니다.

특히 탐색적 데이터 분석 과정에서 큰 도움을 받았는데요. 처음에 종속변수와 상관관계가 큰 독립변수(저자 누적 판매랑)와의 산점도를 그려보니 X-Y축에 가까운 ‘L’자형 곡선으로 나타나자, 각 변수들 앞에 log10을 씌워서 다시 그려볼 것을 주문하였습니다. 실제로 log10을 씌워 다시 그려보니 두 변수 간에 선형관계가 있음을 확인할 수 있었습니다. 이와 같은 멘토의 가이드가 없었더라면 아마도 저희의 프로젝트는 산으로 올라갔을 것입니다. 저희는 매주 멘토와의 만남을 가졌고, 멘토가 가진 경험과 지식을 최대한 배우려 노력하였습니다.

dbin_282.jpg
<그림 1> 종속변수와 독립변수(저자 누적 판매량)의 산점도(좌측)와 두 변수에 log10을 씌운 형태(우측)

여기서 데이터 분석 과정을 상세하게 전달하려면 끝이 없겠지만, 전체 과정을 간단하게 요약해보면 다음과 같습니다. 먼저 회귀 모형의 적합도를 나타내는 지표로 Adjusted R2를 사용하기로 하고, 목표수준을 0.8로 정했습니다. 그리고 회귀 모형간 성능을 비교하는 추가 지표로 MAPE(Mean Absolute Percentage error)를 이용하였습니다. 실제값과 추정값의 차이가 작을수록 MAPE 값도 작아지기 때문에 이 값이 더 작은 회귀 모형을 선택하는 방식을 채용한 것입니다.

여기서 잠깐, 저희가 만든 첫 회귀 모형은 어느 수준이었을 것 같습니까 일단 온라인 서점의 정형 데이터와 일부 통계청 데이터로 일반 선형 모형을 만들었을 때 Adjusted R2는 겨우 0.12가 나왔습니다. 생각보다 실망스러운 결과였지만, 좌절하지 않았습니다. 다음으로 각 변수 앞에 log10을 씌우니 Adjusted R2가 0.32로 3배 가까이 증가했지만, 여전히 우리의 목표와는 상당한 차이가 있었습니다. 당시 가지고 있는 독립변수들로는 더 이상 모형의 적합도를 상승시킬 수 없는 상황이라 판단되었습니다.

저희는 오랜 시간 공을 들여 만든 베스트셀러 정보를 추가하면, 회귀 모형의 적합도가 극적으로 상승할 것이라 기대했습니다. 실제로 베스트셀러 정보를 독립변수로 추가해보니 모형 적합도가 증가하긴 했지만, 기대했던 만큼 극적으로 향상되지는 않았습니다. 정작 모형 적합도를 0.8 수준으로 끌어올릴 수 있었던 계기는 바로 저자 정보가 누락된 데이터들을 제외하고 회귀 모형을 만들었을 때였습니다. 우리팀이 온라인서점으로부터 받은 정형 데이터에는 저자 정보가 누락된 데이터가 전체의 85%에 달했습니다. 저자 정보가 없으니 저자의 속성을 설명해주는 변수들, 즉 누적 총 판매량, 베스트셀러 등록 횟수 등의 독립변수 값이 모두 0일 수밖에 없었습니다. 결국 저자 속성이 없는 데이터들이 전체 모형 적합도를 떨어뜨리고 있었던 셈이죠. 이렇게 N/A 데이터를 배제하고 회귀 모형을 만든 것은 불가피한 조치였습니다. 나중에 이 문제에 대해서는 저희에게 프로젝트를 의뢰한 온라인서점에 알려 저자의 정보를 최대한 보완할 수 있도록 요청할 계획입니다.

데이터 분석은 Kevin이 담당했습니다. 회귀 모형의 적합도를 0.8로 끌어올리는 방법을 찾기 위해 여러 회귀분석 모형에 대해 공부를 하면서 대략 10여 편의 영어논문을 읽었다고 합니다. 한편 데이터 분석에 앞서 전체 데이터(866건)를 Training Data(80%)와 Test Data(20%)로 나누기 위해 난수를 생성해야 했는데, 이 때 Kevin은 seed 번호로 212를 사용했다고 합니다. 올해 2월 12일에 아들이 태어났기 때문에 212를 행운의 숫자로 여긴 셈이죠.



회귀 모형을 완성하다

저희가 최종 회귀 모형을 만들기까지 총 7주가 걸렸습니다. 일반 선형모형에서부터 GLM (Generalized Linear Model), Box-Cox Transformation 등 다양한 회귀분석 모형을 가지고 만들어 봤는데요. 결론적으로 모형 적합도가 가장 높고 MAPE가 가장 낮은 모형은 일반 선형모형이었습니다. 이제 최종 회귀 모형과 해석 방법에 대해 간단하게 설명 드리겠습니다. 아래는 최종 회귀 모형입니다.

dbin_283.jpg
위 수식에서 독립변수 앞에 굵은 표시된 것이 회귀 계수입니다. 이 숫자들은 독립변수가 한 단위 증가할 때마다 종속변수에 영향을 미치는 크기로 이해할 수 있습니다. 총 7개의 독립변수 중 종속변수에 가장 크게 영향을 미치는 것은 바로 ‘저자 베스트셀러 지수_3주’입니다. 이 독립변수에 대한 해석은 이렇게 할 수 있습니다. 새로 신간 서적을 출시하게 된 저자의 기존 서적이, 신간 서적 출판 3주 전에 6개 온라인서점에서 한 번이라도 베스트셀러에 등록되었으면, 신간 서적의 출판 후 14일간 판매량은 215.7권이 증가한다는 것입니다. 이 때 다른 모든 독립변수가 0이라고 한다면 이 회귀 모형으로 추정되는 종속변수의 값은 y절편 14.7에 215.7을 더한 230.4가 되는 것입니다.

위 회귀 모형을 보면, 한 가지 의문이 들 것입니다. ‘저자 베스트셀러 지수_1주’나 ‘저자 베스트셀러 지수_4주’ 등은 숫같은데, 즉 회귀 계수가 양수가 될 것 같은데 왜 음수가 되었는지... 저희는 이 현상을 ‘저자 베스트셀러 지수_3주’와 같은 독립변수의 회귀 계수가 상당히 큰 숫자로 산출된 것에 영향을 받은 것이라고 판단하고 있습니다. 그 결과 종속변수와 양의 상관관계에 있는 독립변수이지만 회귀 계수는 음수가 된 것이죠.

여러분은 저희가 지금까지 설명한 최종 회귀 모형의 결론이 별 것 아닌 것에 대해 적잖이 실망하셨을지도 모릅니다. 신간 서적의 판매량을 결정하는 독립변수들이 누구나 쉽게 예상할 수 있는 저자의 속성들로 채워져 있기 때문입니다. 누적 판매량이 많고, 베스트셀러에도 많이 등록된 저자는 당연히 유명할 테고, 그가 쓴 신간이 독자들의 선택을 받을 확률 또한 당연히 높다고 할 수 있겠죠. 하지만 저희가 이 회귀 모형에 나름의 의미를 부여하고 싶은 부분은 ‘저자 베스트셀러 지수의 주차별 회귀 계수’에 있습니다. 1주 전 또는 4주 전에는 음수이던 것이 2주 전과 3주 전에는 양수로 나타났습니다. 그것도 3주 전의 회귀 계수가 가장 큽니다. 이것은 신간 서적이 출판되기 직전(1주 전)에 베스트셀러 리스트에 등록된 저자보다 2~3주 전에 베스트셀러 리스트에 등록된 저자의 이름이, 마침 책을 고르는 독자의 머리 속에 보다 깊숙이 각인되어 있다고 정리할 수 있지 않을까요

dbin_284.jpg
<그림 2> 신간 예측 분석 모델의 활용 분야



Conclusion

이제 이 회귀 모형의 활용방안에 대해 언급할 차례입니다. 사실 우리가 이렇게 회귀분석을 하는 이유가 모형을 해석하고 실제 비즈니스에 활용하기 위함이기 때문에 이 부분이 가장 중요할 것입니다. 저희는 다음과 같은 3가지 활용방안을 제시하고자 합니다.

첫째, 매월 신간 서적들이 출판되기 전 예상 판매 순위를 예측할 수 있습니다. Training Data로 회귀 모형을 만들고 Test Data로 검증했을 때, 실제 판매량이 가장 많은 1, 2위 서적을 정확하게 맞추었습니다.
둘째, 서점에서 프로모션 대상 서적을 선택하는 기준으로 활용할 수 있습니다. 회귀 모형으로 예상 판매량이 상위 10%인 서적들을 골랐을 때 실제로 100권 이상 팔린 서적은 임의로 선택했을 때보다 무려 5.5배(Lift)나 많았습니다.
셋째, 출판사와 신간 서적의 이벤트 기간 등을 결정할 때 기초자료로 활용할 수 있습니다. 신간 서적의 출판을 앞두고 있는 저자의 기존 서적이 베스트셀러 리스트에 최근 등록되었다고 한다면, 신간 서적의 출판일자를 3주 뒤로 조정하는 것이 판매량 증대에 보다 효과적이라 판단할 수 있을 것입니다.



소통이 팀워크를 단단하게 해주었습니다

저희는 이번 프로젝트를 제대로 해내기 위해 소통을 먼저 챙겼습니다. 소통이 제대로 기능할 때 팀워크는 저절로 생긴다고 판단했습니다. 전체 진행과정에 대해서 누구 하나 빠짐없이 잘 전달되어야 소외되는 팀원이 생기지 않고, 누가 무슨 얘기를 하더라도 전원이 바로 이해할 수 있기 때문에 속도도 빠릅니다. 저희는 2주간의 교육 과정이 종료되기 전에 저희만의 소통 방법을 정했습니다. ‘Facebook’에 새로운 그룹을 하나 만들어 각자 생성한 자료를 이 곳에 모두 업로드하였고, 모임 일정 등을 협의하는 메신저로는 ‘BAND’를 이용하였습니다.



데이터 사이언스팀으로 이제 막 첫 걸음을 떼었습니다

맞습니다. 이제 겨우 첫 걸음을 떼었습니다. 하지만 빅데이터 분석 전문가로서 방향은 제대로 잡은 것 같습니다. 이제 속도를 내려면 실력을 키워야 합니다. 저희가 빅데이터 아카데미를 알기 전에는 회사에서 DW 형태로 보유하고 있는 데이터들만 가지고 분석을 하려 했으나, 그나마도 제대로 활용하지 못했습니다. 그런데 이제는 압니다. 문제 해결을 위해서 얼마든지 다양한 소스로부터 데이터를 모을 수 있다는 것을...

요즘 ‘빅데이터’라는 키워드에 대해서 전문가들마다 의견이 분분한 듯 합니다. 대개 2014년에 정점을 찍고 이제는 내려가는 추세라는 의견이 가장 많아 보입니다. 그러나 ‘빅데이터’라는 트렌드가 내리막을 걷는다 해도 기업과 정부에서 ‘데이터 분석을 통해 인사이트를 발굴’하는 일들이 없어지지는 않을 것입니다. 오히려 새롭게 등장하는 분석 기법들과 데이터 확보 방법들로 더 에지 있는 모습으로 진화해 나갈 것 같습니다. 데이터 사이언티스트도 많이 필요 하겠죠

그런데 데이터 사이언티스트에게는 상당한 역량이 요구됩니다. 전문가 수준의 수학과 통계학 실력에 해커의 손놀림, 인문학적 소양을 기초로 하는 창의력, 비즈니스에 대한 이해와 통찰력, 그리고 여러 분야와 협력 및 설득력 있는 전달력 등... 그런데 이런 역량을 모두 다 갖춘 전문가는 과연 얼마나 될까요 저희는 ‘1명의 데이터 사이언티스트’ 대신 ‘다수로 구성된 데이터 사이언스팀’이 보다 가능성 있고 현실적인 모델이라 생각합니다. 저희 ‘KPDCH’의 두 번째 걸음을 지켜봐 주십시오. 감사합니다.













출처 : 한국데이터베이스진흥원

제공 : DB포탈사이트 DBguide.net