대학생에게 특정 홈쇼핑의 데이터를 주면 그다음 해 매출을 예측할 수 있을까? SAS코리아에서 진행한 제17회 SAS 분석 챔피언십 이야기다. 17회를 맞은 SAS 분석 챔피언십은, 현업이 아닌 대학생에게 현업의 데이터를 주고 분석하도록 하는 대회다. 17회의 후원 기업은 롯데홈쇼핑으로, 롯데홈쇼핑의 실제 매출 데이터로 2018년 매출을 예측하도록 했다. 주어진 데이터는 2013년부터 2017년까지의 판매 상품 정보, 프로그램 실적, 프로그램 편성 정보, 편성 시간표 등이다. 편성정보나 실적에는 쇼 호스트나 PD, 매출액 등이 표기돼 있다.

 

연세대 미래캠퍼스 정보통계학과 팀 ‘사전 형식의 그룹핑 변수’

연세대 미래캠퍼스 정보통계학과 내 학술 소모임 YDMS(Yonsei Data Mining School) 소속인 이들은 학교에서 SAS 툴을 사용해왔다.

연세대 팀의 특성은 외부변수를 줄이고 내부 데이터만으로 대부분의 문제를 해결했다는 것이다. 이들은 섬세한 파생변수 생성을 통해 롯데홈쇼핑상을 받았다. 서민석 학생은 “최종적으로 생성한 파생변수보다 중간에 주제나 데이터에 맞지 않다고 생각하여 엎은 파생변수들이 더 많았다”며 고통의 시간을 떠올렸다.

프라임 시간대와 상품 대분류멸 매출 상관관계

처음으로 만든 건 시간대 더미 변수다. 재핑타임(TV 채널 변경 시 소요되는 시간)을 활용 가능한 데이터, 즉 정수화하기 위해 반올림해서 더미 변수를 생성했다. 그 결과 시간대와 평균매출액간 상관관계를 봤을 때 프라임 시간대가 존재함을 알 수 있었고, 상품 대분류별로 특징이 있음을 알 수 있다. 예를 들어 식품은 저녁 시간대에, 건강 대분류는 장년층 타깃인 아침 시간대 매출이 높았다.이를 통해 최적의 요일, 시간, 상품 조합이 있는지를 알아내기 위해 연관성 분석을 실행했다. 조건부 확률을 통해 신뢰도를 구하고 요일/시간/상품 조합이 얼마나 빈번한지 파악했는데, 각 조합 평균매출액을 계산해 신뢰도 0.01 이상&매출 평균 이상이면 좋은 조합, 그렇지 않으면 나쁜 조합으로 판별했다.

그다음은 과거 판매실적 변수다. 연세대 팀은 데이터가 부족함을 깨달았다. 언제 어떤 방송에서 어떤 상품을 누가 판매했는지는 매출액과 연관이 있었으나 인풋 변수로 활용하기엔 범주가 지나치게 크고 정형화되지도 않았다. 또한 판매실적 변수는 테스트 셋에 존재하지 않았으므로 활용하지 않았다. 이 문제는 사전 형식의 파생변수 생성으로 해결했다.


[AD] 멀티 클라우드 데이터 관리를 위한 베리타스의 전략을 살펴보세요

 

사전 형식의 파생변수 생성

연세대 팀의 필살기였다. 세분류 사전(상품 분류는 대분류, 중분류, 소분류, 세분류로 나눈다)은 편성 빈도에서 의류, 패션잡화, 금융, 음료가 높지만 매출액은 가구나 가전이 높다는 점에서 착안했다. 세분류별 과거 판매실적 변수들을 매출액, 주문 분야, 주문 건수, 이익달성률, 매출달성율의 평균을 활용해 파생변수로 만들었다. 앞서 만든 파생변수들을 기존 데이터셋에 넣기 위해 세분류코드를 조인 키로 활용했다.

월별, 주별, 요일별 매출액 차이가 있음을 인지하고 날짜 사전을 만들었다. 주, 요일, 시간을 기준으로 과거판매실적변수 생성. 주, 요일, 시간을 조인 키로 생성한 파생변수를 기존 데이터셋에 넣었다.브랜드 사전은 건강 대분류에서 특정 브랜드 매출액이 압도적으로 높은 것에 착안했다. 그러나 특정 브랜드가 하나의 대분류에만 속해 있지 않았다. 따라서 브랜드+대분류 코드 조합을 통해 브랜드 사전을 만들었다. 생성 파생변수는 기존 데이터셋에 조인시키고 브랜드별 과거 판매실적을 활용했다.

방송 프로그램 사전은 상품간 분류차이가 있음을 인지하고 만든 것이다. 예를 들어 건강 제품의 경우 여러 대분류를 갖지만 건강식품은 식품 대분류만을 가진다. 비슷한 상품이라도 분류차이가 있는 것이다. 또한, 최유라쇼와 ‘나쁜 여자들’ 같은 방송은 매출액이 높다. 이를 통해 방송의 고유한 특성이 판매실적에 영향을 주는 것을 확인했다. 그런데 설 특집 방송 등은 연도별로 방송 프로그램명이 다르고 인기방송과 이벤트성 방송 혼합형태가 존재했다. 범주 많고 정형화되지 않아 처리가 필요했는데, 프로그램명을 기준으로 분류했다. 예를 들어 최유라쇼 이름이 들어간 프로그램들을 집합으로 분류해 최유라쇼 판매실적을 계산했다. ‘슈퍼위크’로 부르는 방송도 마찬가지다. 그런데 최유라쇼와 슈퍼위크가 동시에 들어간 경우 두 프로그램의 평균판매실적을 가중평균해 계산했다. 가중치는 방송 빈도 많으면 많은 식으로 판매실적변수를 만들었다.

방송 프로그램별 판매 실적

방송 빈도에 가중치를 주기 위한 공식

 

그 외의 변수

PD와 쇼 호스트의 변수를 살펴보니 쇼 호스트 두명(SH_1, SH_2)과 PD 한 명 외에는 변수화돼있지 않아 나머지를 변수화했다. 그래프를 보면 쇼 호스트별로 특정 주력 상품이 있으며, 해당 대분류에서 높은 순위의 평균 매출액을 갖고 있음을 알 수 있다. 따라서 상위 세 개 대분류를 주력상품으로 지정했다. 세 개만 한 이유는 전체판매 60%를 차지했기 때문이다. 이 근거를 통해 PD나 쇼 호스트별로 판매실적변수와 주력상품변수를 생성했다. 이후 상품과 쇼 호스트간 매칭하는 변수를 우선 생성했다. 생성 방법은 쇼 호스트별 주력상품 프로그램 참여횟수/쇼 호스트 참여 횟수다. 두 명이 판매하는 경우에는 분모는 분모끼리, 분자는 분자끼리 더해서 나눈다. 그 결과 양의 상관관계 보이는 대분류와 그렇지 않은 대분류가 있었다.


[AD] 금융권을 위한 멀티 클라우드 애플리케이션 서비스 전략

시너지 변수의 경우 PD와 쇼 호스트간 시너지효과를 보여주는 파생변수다. 쇼 호스트+PD의 조합 평균매출액을 구한 후 해당 방송 전체 매출액에서 빼 준다. 양의 숫자가 나오면 좋은 것인 형태다.

상품 개수와 단일 품복 여부도 변수로 만들었다. 같은 방송이 상품 여러 개를 판매하는 경우 한 방송에서 판매하는 상품 변수와 단일품목인지 구분하는 변수를 만들었다. 그 결과 매출액에 영향을 미치고 있음을 알 수 있다.

데이터 시각화의 경우 SAS 비주얼 애널리틱스의 기능을 적극적으로 사용했다. 특히 연세대 팀은 평소 학교에서 Base SAS®를 사용해왔는데, 이솔 학생은 “SAS 비주얼 애널리틱스는 직접 코드를 치지 않고도 쉽게 그래프를 그릴 수 있어서 편리했다”고 말했다.

비주얼 애널리틱스를 통해 PD와 쇼 호스트의 시너지를 시각화했다

 

외부변수

연세대 팀은 일주일간 기상정보 담은 데이터셋과, 지상파 채널 사이에 위치한 홈쇼핑 채널의 특성을 반영해 직접 영향을 주는 지상파 Top20 시청률 합만을 이용했다. 이때 임지완 학생은 “고객정보가 특정되지 않아 고객과 날씨정보를 맞추기 어려웠다”고 한다. 따라서 외부변수보다는 직접 생성한 변수를 위주로 모델링을 진행했다.

 

이상치 제거

프로그램명과 상이한 품목을 파는 경우를 이상치로 판단해 제외했다. 또한, 주문 수량과 건수는 없지만 매출액 있는 경우 이익달성율 변수에 과도하게 큰 값이 들어가게 되므로 제거했다.

 

결측치 대체

파생변수 특성상 과거의 변수이므로 처음 등장한 제품은 데이터가 없다. 따라서 단어 벡터를 통해 대체상품을 찾았다. 방식은 우선 프로그램명과 분류를 합쳐서 긴 단어를 만든다. 가족愛선물대전유아동용품완구류교육용 완구블록/교구 같은 식이다. 이후 특수문자와 공백을 제거했다. 그다음 단어 행렬을 만들어 자카드 유사도(집합된 데이터들의 유사성을 측정하는 지표)를 계산하고 최근접 이웃 3명의 평균값으로 결측값을 대체했다.

새로 등장한 쇼 호스트나 PD의 경우 출연 스타일이 비슷한 인물로 대체했다. 상품 대분류별 출연 횟수를 비교해 유클리드 거리 계산으로 이웃 찾기를 실행했다. 출연 스타일의 행렬을 생성하고 쇼 호스트 사이 유클리드 거리 계산을 통해 최근접 이웃 세명을 찾은 뒤 평균값으로 대체했다.

 

모델링

모델링 성능 평가는 2013~2016년 데이터로 2017년을 검증하고, 2013~2017년 데이터로 최종 예측을 진행했다. 의사결정나무를 벤치마크 모델로 해서 현재 생성한 파생변수가 유의미함을 확인할 수 있었다. 파생변수를 누적함에 따라 RMSE(평균 제곱근 오차; 모델이 예측한 값과 실제값의 차이를 알려주는 척도)가 떨어지는 것을 확인 가능했다. 최종모델은 그래디언트 부스팅과 랜덤 포레스트, 의사결정나무 중 RMSE가 제일 낮은 그래디언트 부스팅을 사용했다.

트레인 셋과 테스트 셋의 그래프 모양으로 예측 데이터가 제대로 작동하고 있음을 할 수 있다

그런데 2017년까지의 정보로 2018년을 한 번에 예측하면 오버피팅(과적합) 가능성이 있다. 따라서 부트스트랩(데이터의 일부분을 재추출해 불확실성을 계산하는 기법)을 통한 모델 안정화를 사용했다. RMSE가 낮아짐을 확인할 수 있었고 같은 방법으로 예측했다.

분석과정에서는 SAS 비주얼 데이터 마이닝 앤드 머신러닝(SAS® Visual Data Mining and Machine Learning; SAS VDMML)의 모델 스튜디오(파이프라인을 이용한 모델링 기능)를 사용했다. 이솔 학생은 “변수를 넣을 때 클릭으로 넣을 수 있는 점과 옵션에 있던 정규화, 오토 튜닝 등의 기능이 편리했다”고 전했다. 특히 “SAS VDMML의 오토 튜닝 부분이 모델의 하이퍼파라미터를 결정하는 데 유용해 모델 만드는 시간을 크게 단축했다”고 했으며, “이렇게 만들어진 모델의 코드도 옆 부분에 나와있어서 바꾸고 싶은 부분을 쉽게 수정할 수 있었다”고 말했다.

VDMML의 파이프라인을 통한 모델링

 

활용방안

편성진단시스템: 연관성 분석 결과를 기반으로 방송 편성에 대한 진단을 개선한다. 그 방송이 그 시간에 잘 맞는지를 판단하는 것이다. 별로라면 대체 리스트를 한꺼번에 볼 수 있도록 제공한다.

긴급상황 대비: 재고가 부족한 상황을 대비한다. 요일과 시간대 상품 조합에 대한 인사이트를 수치화해 긴급상황을 대비한다.

쇼 호스트와 PD 매칭 정보: 매칭 정도와 시너지 정도를 제공해 주력상품과 시너지 값을 함께 제공하면 편성에 도움이 될 것이다.

새로운 방송 프로그램 기획: 단어 벡터끼리 자카드 유사도를 통해 가까운 이웃의 편성을 참고한다. 새로운 상품인 백김치 팔 때 김치를 팔았던 기존 프로그램을 참고하는 것이다.

 

롯데홈쇼핑이 연세대 팀을 선택한 이유

롯데홈쇼핑에서 직접 선정한 상이었다. 텍스트 분석이나 연관성 분석이 참신했다. 변수를 그룹핑하고 텍스트 분석한 점이 훌륭했다. 아쉬운 점은 활용방안에 녹아 나오지 않았다는 것이었다. 그 외 모델링 등의 과정이 참신했고 결과도 좋았다. 연세대 팀은 상금 500만원을 셋으로 나눴다고 했는데, 서민석 학생은 “여행을 좋아해서 상금으로 여행을 가고 싶지만 방학 때 여행 갈 시간이 없다”고 했다. 이게 다 어른들 잘못이다. 큰 상을 탔으니 꼭 여행을 가길 바란다.

롯데홈쇼핑상: 연세대학교 미래캠퍼스 정보통계학과팀 (왼쪽부터 서민석 학생 – 이솔 학생 – 임지완 학생)

 

SAS 분석 챔피언십이란

기업에서 실제로 사용하는 데이터를 통해 학생들에게 실제 비즈니스 툴과 데이터를 추고 데이터를 예측하는 대회. 글로벌 비즈니스 분석 소프트웨어 기업인 SAS에서 매년 개최한다.

 

대학생에게 홈쇼핑 데이터를 주면 매출을 예측할 수 있을까? SAS 분석 챔피언십 ⓛ 동국대 팀 보러 가기(클릭)

 

글. 바이라인네트워크
<이종철 기자> jude@byline.network