-
<기초 프로젝트> 고객 분석에 따른 마케팅 전략 제안 -1 (Customer Personality Analysis)내일배움캠프(데이터 분석 부트캠프 1기)/팀프로젝트 2024. 1. 19. 22:17
- 프로젝트 명 : 고객 분석에 따른 마케팅 전략 제안
- 프로젝트 기간 : 2024.01.11 ~ 2024.01.18
- 사용된 데이터 : https://www.kaggle.com/datasets/imakash3011/customer-personality-analysis
기초프로젝트는 분석 도메인을 결정하고 결정하고 분석 도메인에서 SQL을 활용할 수 있는 데이터를 선정하여 SQL 쿼리를 다양하게 사용해보는 것을 중심으로 진행되었다.
요구사항은 2가지
- SQL을 사용할 수 있는 데이터여야함
- JOIN을 활용할 수 있도록 N개의 복수 데이터를 사용해야함.
우리 조는 마케팅 도메인을 선택하여 프로젝트를 진행하였는데 관련해서 데이터를 찾아보았을 때 JOIN으로 엮을만한 여러 개의 파일을 제공하는 데이터는 찾기가 힘들었다.
그래서 적합한 데이터를 찾은 뒤 이를 기본키와 외래키를 설정하여 다수의 테이블로 분할하기로 결정을 했다(튜터님과
매니저님께도 허락을 받고 진행하였다).
프로젝트 개요
우리 조는 와인, 육류, 수산물, 과일 등을 판매하는 식료품 쇼핑몰의 데이터분석팀이라고 가정하고 2024년 신년 홈파티를 하려고하는 고객층을 타겟으로 마케팅 전략을 세우기로 하였다.
사용 데이터
데이터 컬럼 중에서 기본키가 될 수 있는 ID 기준으로 하여, 고객 정보 테이블, 구매 금액 테이블
구매 횟수 및 방문관련 테이블, 고객 반응(캠페인 수락여부 및 컴플레인) 테이블로 분할하였다.
분석 목표 및 목적
우리 조의 분석 목적 및 목표는 고객의 데이터를 활용해서 세그먼트를 나누고 각 세그먼트별로 적절한 마케팅 전략을
수립하는 것을 통해 매출을 증대시키는 것이었다. 이를 위해서는 데이터를 세그먼트로 나눌 기준이 필요했다.
그래서 여러방면으로 데이터를 전처리 및 EDA를 해보다 6개 컬럼으로 구성된 프로모션(캠페인) 참여 여부 데이터들을 이용하여 한 번이라도 프로모션에 참여한 적이 있는지 여부를 기준으로 구매 금액과 구매 횟수를 보았는데
참여 이력이 있는 고객이 그렇지 않은 고객에 비해서 평균적으로 구매 금액도 높고
구매 횟수도 더 많다는 것을 알 수 있었다.
그래서 프로모션 참여 여부를 하나의 세그먼트 기준으로 잡고 더 구체적인 세그먼트를 구성해보기로 했다.
그래서 우리가 찾아낸 변수는 결혼관련 변수, 그리고 자녀 관련 변수들이었다.
앞서 설명한대로 프로모션에 참여한 적이 한번이라도 있으면 프로모션 참여 여부가 Accepted, 단 한번도 없으면 Unaccepted인 AcceptedCmp 변수를 만들어주었고
결혼 상태를 의미하는 Marital_Status 변수에서 동거인이 있음을 의미하는 Together와 결혼했음을 의미하는 Maried는 NotSingle 그 이외의 혼자임을 의미하는 여러 값(Divorced, Yolo 등)은 Single로 묶어주었다.
마지막으로 어린 아이의 숫자를 의미하는 Kidhome, 십대 자녀의 숫자를 의미하는 Teenhome 변수를 합쳐서
자녀가 1명이라도 있다면 Child, 없다면 NoChild 값을 가지는 ChildHome 변수를 만들어주었다.
다음은 해당하는 전처리가 포함된 쿼리 결과를 JOIN을 통해 VIEW로 생성한 쿼리문이다.
프로모션 참여 여부, 동거인의 유무, 자녀의 유무 변수를 통해서 총 8개의 세그먼트를 생성해주었고 각각의 세그먼트의 구매를 비교해볼 수 있었다.
데이터 분석
위와 같이 다양한 쿼리를 작성하여 각 세그먼트들의 인구수, 평균 구매 가격, 평균 구매 횟수 품목별 구매 금액 등 다양한 정보를 알아내었다.
그런데 뽑아낸 쿼리 결과가 테이블로 조회되다 보니 PPT로 담아냈을 때 가독성이 많이 떨어질 것 같다는 생각이 들어서 Python으로 시각화를 해야하나를 고민하였다. 마음에 걸리는 점은 이번 팀프로젝트의 목적가 배운 SQL을 활용하기 위함이라는 점이었는데 Python으로 처음부터 전처리를 해서 또 시각화를 해버리면 그 부분이 의미가 없어질 것 같았다.
그래서 SQL의 쿼리 결과를 Pandas로 핸들링할 수 있도록 쿼리 결과를 Python에서 불러오는 pymysql 라이브러리를
찾았고 사용하기로 했다.
https://jinhyunbae.tistory.com/115
pymysql 라이브러리의 함수들을 이용해서 미리 짜놓은 쿼리의 결과를 불러와 DataFrame에 적재하였고
이를 통해 분석 결과를 보기 좋게 시각화할 수 있었다.
2에서 계속
링크 : https://jinhyunbae.tistory.com/122
'내일배움캠프(데이터 분석 부트캠프 1기) > 팀프로젝트' 카테고리의 다른 글
실전 프로젝트 KPT 회고 (0) 2024.03.13 <심화 프로젝트> 와인 가격 예측 - 2 (1) 2024.02.22 <심화 프로젝트> 와인 가격 예측 - 1 (0) 2024.02.21 <기초 프로젝트> 고객 분석에 따른 마케팅 전략 제안 -2 (Customer Personality Analysis) (0) 2024.01.19