728x90

안녕하십니까, 간토끼입니다.

이번 포스팅은 올해 수상했던 중소기업 통계데이터 활용 정책 아이디어 공모전 수상 경험에 관해 다뤄보겠습니다.

이번 공모전 경험은 알고리즘을 직접 활용해 모델링까지 도출하는 일련의 데이터 분석 프로세스 과정을 경험한 거의 첫 공모전 경험이었습니다.
물론 교내 대회에서 비슷한 프로세스를 통해 프로젝트를 한 경험은 몇몇 있지만, 공모전에 참여하여 경험한 것과는 결이 좀 달랐습니다.
아무래도 경쟁 상대들이 더욱 쟁쟁(?)하니깐요. ㅋㅋ

그래서 결론은 이전까지 소개해드린 아이디어 위주의 공모전들과는 다르게 데이터 분석 과정이 들어갑니다.
따라서 이를 좀 유기적으로 준비 과정부터 프로젝트 진행 등등등 잘 설명해볼까 합니다.


1. 대회 소개
간단하게 대회 소개를 하자면 다음과 같습니다.
- 중소벤처기업부가 주최하고 중소기업중앙회가 주관한 대회
- 중소벤처기업부의 조사통계 원자료에 공공 및 민간 참여자가 보유한 데이터를 연계, 융합한 정책 아이디어를 제안

중소벤처기업부가 중소기업을 대상으로 한 실태조사 데이터가 있는데, 이 실태조사 데이터가 Raw 데이터로 제공이 됐습니다.
즉 기업을 식별할 수 있는 정보만 마스킹을 하고, 나머지 변수들은 전혀 가공되지 않은 상태의 원자료라고 생각하시면 됩니다.

통상적으로 우리가 공공데이터를 분석한다고 했을 때, 이 가공되지 않은 원자료(Raw 데이터)는 구하기 힘든데요.
그러한 점에서 민감할 수 있는 이 raw데이터를 분석할 수 있다는 것만 해도 정말 좋은 기회였습니다.

이 조사통계 원자료는 크게 중소기업의 실태조사(서비스업, 일반항목, 제조업), 경기전망 데이터 등으로 이루어져 있었습니다.
저는 서비스업종 중소기업의 실태조사 데이터를 이용하여 분석을 진행하였습니다.
핵심은 어느 데이터를 선택하든 유의미한 인사이트를 도출함으로써 중소기업 지원 정책에 도움을 줄 수 있는 아이디어를 제안하는 것입니다.



2. 분석 과정
먼저 분석과정은 크게 다음과 같이 정리해볼 수 있습니다.
(1) 주제 선정
(2) 데이터 전처리
(3) EDA(탐색적 데이터 분석), Feature Engineering, 통계 분석
(4) 머신러닝 알고리즘을 활용한 모델링
(5) 위 과정을 바탕으로 한 정책 아이디어 제안

대충 이러한 프로세스로 진행된다고 볼 수 있는데요.
실제로 가장 많이 차지하는 건 (1), (2), (3) 같아요 ㅎㅎ
특히 EDA에서 어떠한 인사이트를 뽑아내야 그걸 바탕으로 모델링으로 이어질 수 있기 때문에 참 어렵습니다.
또한 Raw데이터의 경우, 데이터가 책 속에 있는 예제 데이터처럼 깔끔하지 않기 때문에 전처리 과정도 중요합니다.

한번 자세하게 다뤄보도록 할게요.



(1) 주제 선정
먼저 '정책 아이디어' 공모전인 만큼, 주제를 정하는 것이 가장 중요합니다.
아무리 데이터 분석 스킬이 화려해도, 내가 다루는 데이터를 이해하지 못하고, 도출한 결과를 해석하지 못하면 아무 소용이 없으니까요.
즉 도메인에 대한 이해를 바탕으로, 내가 가진 데이터와 엮어서 어떤 분석을 할지 대략적인 큰그림을 잡는 게 중요합니다.

저같은 경우는 마케팅 학회에서 공부를 한 경험도 있고, 평소 비즈니스 애널리틱스 분야에 관심이 굉장히 많았습니다.
즉 기업이 가진 문제에 대해 고민하고, 문제를 해결할 수 있는 그러한 비즈니스 프로세스 개선 등에 흥미가 있었는데요.
그러다보니 데이터를 살펴보던 중 '온라인 마케팅 활용'에 대한 변수가 있는 것을 확인했습니다.
온라인 마케팅을 하는지, 한다면 어떠한 플랫폼을 이용하여 하는지 등...

여기서 말하는 마케팅은 단순히 커뮤니케이션(Communication)의 의미겠으나, 그럼에도 불구하고 중소기업에서 마케팅이 갖는 의미는 클 것이라 생각했습니다.
오히려 중소기업의 우수한 제품과 서비스를 정작 사람들에게 알리지 못하여 수익을 내지 못하는 기업이 많을 것이라 판단하였고요.
또한 중소기업의 다양한 지원 사업을 수행하는 중소기업중앙회나 중소벤처기업부의 중소기업 지원 사업을 보니, 다른 사업에 비해 '중소기업 마케팅 지원 사업'의 규모가 나날이 줄어들고 있다는 사실을 파악하였습니다.
그마저도 마케팅 지원사업은 대부분 제조업을 대상으로 하고 있었으며, 생존율이 높고 경쟁력이 강한 제조업에 비해 경쟁력이 약한 서비스업은 점차 소외되고 있다는 것이었습니다.

이때 서비스업의 특성상, 온라인 기반 마케팅이 제조업보다 적합할 것이라고 판단하였습니다.
온라인 매체와 채널이 점차적으로 증가하고 있을 뿐만 아니라, 소비자의 수요와 관심 또한 분화되고 있다는 점에서 자사의 독특한 서비스를 온라인을 통해 이러한 소비자를 공략한다면 특색을 더욱 잘 살릴 수 있을 것이라 생각하였으며,
광고 등 전통 매체 대비 저렴한 가격으로도 큰 효과를 낼 수 있다는 점에서 중소기업에게 적합한 방식이라고 판단했습니다.

따라서 서비스업분야 중소기업의 온라인 마케팅 활용 성과를 파악하여, 실제로 온라인 마케팅을 활용한 기업이 그렇지 않은 기업에 비해 성과 지표의 차이가 두드러진다면 마케팅 지원 정책을 제안할 타당성이 생길 것이라는 가설을 통해
마케팅 지원 사업을 위한 중소기업 분류 모델을 만들어야겠다고 생각했습니다.
자세한 건 후반부에 다뤄보죠!



(2) 데이터 전처리
raw데이터를 살펴보니, 8500개의 관측치와 319개의 변수로 이루어져 있었습니다.
여기서 관측치의 의미는 개별 기업을 말하는 것이겠죠. 중소기업의 실태조사 데이터이니까요.
그리고 각 변수는 중소기업 실태조사에서 묻는 설문조사의 각 문항을 의미합니다.

따라서 설문조사에 맞게 순서형 변수의 특성도 파악해야하며,
설문조사인 만큼 응답하지 않고 넘어간 문항에 대해서 결측치를 잘 처리하는 것도 중요합니다.
특히 응답하지 않은 문항의 경우 . 으로 표시되는 경우가 많은데요.
이걸 그대로 R에 불러오게 되면, 데이터 프레임의 특성상 한 Column에 숫자와 문자가 같이 섞이면 Column 내 모든 데이터를 문자열로 인식하게 됩니다.

X1 X2 X3 X4
1 5 3 2
12 Hi 2 33
. 1 3 7
4 11 78 ","


이제 예를 들어 위와 같은 데이터프레임이 있다면, X3열을 제외한 나머지 Column은 모두 문자열로 인식을 합니다.
그래서 불러오기 전에 엑셀로 Raw데이터를 살펴보며 결측치는 어떻게 처리되어 있는지, 대충 어떤 구조로 이루어져 있는지 살펴보는 것도 좋은 방법입니다.
또한 Column이 많은 만큼, 쓸 데 없는 Column은 미리 제거하는 것도 좋은 방법입니다.
예를 들어 온라인 마케팅에 대한 분석을 하는데, "1년 동안 지출한 토지 관련 비용" 이런 문항은 제거해도 무방하겠죠?
그래서 깔끔하게 이런 건 제거하고 제가 필요하다고 판단되는 Column 위주로 살펴봤습니다.


(3) EDA(탐색적 데이터 분석)
개인적으로 데이터 분석 프로세스에서 가장 중요하다고 생각하는 파트입니다.
물론 시각화를 화려하게 하는 것도 중요하지만, 결국 본질은 모델링으로 가기 위한 인사이트를 얻어내는 과정입니다.
저도 개인적으로 잘 못하는 부분이라 크게 설명할 부분은 없는데...
사실 EDA에 정답은 없는 것 같아요.

어차피 매 분석마다 같은 매커니즘을 적용할 것도 아니고... 그냥 데이터를 계속 뜯어보면서 패턴을 찾아내는 게 중요하다고 봅니다.

예를 들어 온라인 마케팅을 활용하는 기업이 약 30%라면, 실제로 활용 기업과 그렇지 않은 기업의 매출액 차이는 어떻게 될지 파악해보고,
온라인 마케팅을 활용하는 기업은 주로 어떤 플랫폼을 이용하는지, 각 플랫폼별 이용 기업의 평균 매출액은 차이가 있는지,
마케팅 활용 분야별 인력은 어떻게 활용하고 있는지, 전문 인력의 활용이 충분한지,
서비스업종에도 약 22개의 세부 산업이 있는데 각 산업별로 마케팅 활용 정도의 차이가 있는지,
있다면 왜 특정 산업은 활용 정도가 높을지 / 활용 정도가 낮은 산업은 어떤 산업일까?
활용 상의 비효율성이 있을까? 실제로 성과 지표의 개선이 이루어지고 있을까?

이런 식으로 데이터를 계속 뜯어보며 패턴을 파악해야 이를 바탕으로 우리가 예측하고자 하는 Target 변수의 예측력을 높일 수 있는 변수들을 구성할 수 있습니다.
이러한 과정을 Feature Engineering이라고 합니다.
머신러닝에서 모델 개선에 사용할 의미있는 변수들을 골라 스케일링 등 변형을 하거나,
Target 예측에 큰 영향을 줄 수 있는 파생변수를 생성함으로써 예측력을 높이는 일련의 과정을 말합니다.

여기서 Feature는 흔히 말하는 독립변수, 혹은 설명변수를 의미합니다.
그렇기에 Feature Engineering은 이러한 설명변수들을 가공하는 작업이라고 이해하시면 될 것 같아요.
실제 제가 뽑아낸 인사이트들을 공유해드리고 싶지만, 외부로 공개하는 게 다소 곤란하네요 ㅠㅠ

결론은 실제 산업별로 마케팅 활용률의 편차가 컸으나, 특정 산업 내에서 마케팅 활용이 가져다주는 차이는 매우 컸습니다.
즉 A산업에서 마케팅 활용 그룹 / 마케팅 미활용 그룹으로 나눈 후 평균 매출액과 평균 당기순손익의 차이를 비교해보았을 때
이러한 성과지표(매출액, 당기순손익)이 마케팅을 활용한 그룹이 훨씬 우수했습니다.
모든 산업에서 유의미한 결과를 확인할 수 있었고요.

이후 이러한 차이가 통계적으로도 유의한지 t-검정(t-test)를 통해 비교해보았습니다.
또한 상관분석을 통해 마케팅 인력을 보유하고 있는 기업은 그렇지 않은 기업에 비해 성과지표가 우수할 것인지 파악해본 결과, 마케팅 인력과 매출액 간 통계적으로 유의한 양(+)의 상관관계도 있었습니다.


(4) 머신러닝 알고리즘을 활용한 모델링

따라서 중소기업을 크게 세 분류로 나눌 수 있다고 판단했습니다.
온라인 마케팅 미활용 기업 / 온라인 마케팅 활용 but 인력 보유 X / 온라인 마케팅 활용 and 인력 보유 O
실제로 이를 예측함으로써 그룹을 나눌 수 있다면 정부의 마케팅 지원 정책을 각 기업의 마케팅 활용 수준에 따라 효과적으로 지원할 수 있을 겁니다.
기존에는 수요자(중소기업)의 마케팅에 대한 인식이 부재하여 정부지원이 일부 관심있는 중소기업들 중심으로 이뤄졌는데요.
이러한 정보의 비대칭성 문제 개선을 위해 기계학습 분류 모형을 활용하여 예측된 각 그룹에 맞는 지원 정책 소식을 직접 알림으로써 지원 수혜 대상을 넓히는 데 의의를 두었습니다.


분석에 쓰인 알고리즘은 AdaBoost 알고리즘입니다.
부스팅은 약한 학습기(Learner)들을 여러 개 결합하여 강한 학습기를 만들어내는 앙상블 기법의 한 종류로, 모델링에 사용한 AdaBoost는 이전 약한 학습기의 결과물의 잘못 분류된 개체에 가중치를 두어 더하는 분류 성능이 매우 좋은 기법입니다.
사실 AdaBoost보다 요즘은 Gradient Boosting, 그리고 이를 응용한 LightGBM 등의 알고리즘을 많이 쓰는데요.
개인적으로 학교 머신러닝 수업에서 배운 알고리즘을 직접 써보고자 하는 생각이 커서 AdaBoost를 사용하였습니다.

분류 성능을 측정하는 지표로는 분류 정확도(Accuracy)뿐만 아니라 F1-Score, AUC 등의 지표를 통해 다각도로 분류를 정말 잘하는지 측정하였습니다.

실제로 좋은 분류 성능을 보였습니다.


(5) 위 과정을 바탕으로 한 정책 아이디어 제안

따라서 위 과정을 바탕으로 한 서비스업종 중소기업의 온라인 마케팅 활용 시사점은
- 온라인 마케팅 활용 여부는 매출액 상승에 영향
- 마케팅 활용 기업의 마케팅 전문 인력 보유는 매출액 상승에 영향

그리고 제가 제안한 기계학습 분류 모형은 각 기업의 마케팅 활용 수준에 따라 맞춤형 마케팅 지원 정책을 효과적으로 설계하고 지원할 수 있는 기반을 마련하는 의의가 있습니다.
즉 데이터셋에 주어진 8500개의 중소기업만으로 얻어낸 모형을 통해 수많은 서비스업종 중소기업의 마케팅 활용 여부를 예측하고, 예측된 결과에 맞게 지원할 수 있도록 각 그룹에 맞는 지원 정책을 제안하였습니다.


이렇게 주제 선정부터 분석, 모델링, 그리고 정책 아이디어 제안까지 나름 혼자 고군분투하였는데요.
다행히 본선을 진출하여 심사위원들 약 열 분 앞에서 PT를 할 수 있었습니다.
개인적으로 발표를 좋아해서 발표는 자신있었거든요.
심지어 제가 모든 팀 중 첫 발표라 되게 떨렸었는데 막상 시작하고나니 언제 시간이 갔는지 모를 정도로 휙휙 지나갔었습니다.

심사위원 분들은 통계 전문가, 중소기업 전문가 등의 교수님들과 중소벤처기업부/중앙회 분들이셨던 것 같아요.

그래도 좋게 보였는지 운좋게 장려상을 수상할 수 있었습니다. ㅎㅎ


개인적으로 굉장히 뿌듯한 경험이었습니다.
나름 학기 중에 병행하느라 좀 힘들긴 했는데, 머신러닝 수업을 들으면서 수업 시간에 배운 알고리즘을 실제 데이터에 바로 적용해본 것도 굉장히 좋은 경험이었으며,
데이터 분석 프로세스 일련의 과정을 스스로 해냈다는 것 자체가 되게 기쁘더라고요.

그리고 사실 학부생 중 혼자 참여해서 수상한 사람이 저밖에 없었습니다.
시상식 참여해서 보니 되게 신기하더라고요 ㅋㅋㅋㅋ

무엇보다도 그전까진 이 분야에 발을 들이면 잘할 수 있을까에 대한 확신이 많이 없었는데,
머신러닝, 그리고 데이터 사이언스에 대한 진로에 대한 고민을 해결할 수 있었던 프로젝트였습니다.

감사합니다.
잘 읽으셨다면 게시글 하단에 ♡(좋아요) 눌러주시면 감사하겠습니다 :)
(구독이면 더욱 좋습니다 ^_^)




- 간토끼(DataLabbit)
- University of Seoul
- Economics, Data Science

728x90

+ Recent posts