Project 21

[2023 BDA 데이터 분석 공모전] Track2: 모델링 고도화 (1) - 예비 보고서 작성

연합 빅데이터분석 학회 BDA에서 개최한 공모전에 참가하였다. BDA 학회원 뿐만 아니라 타 대학 데이터분석 학회까지 포함하여 대학생 데이터분석 학회 연합 단위에서 이루어지는 공모전이다. BDA 6기 데이터 분석 중급반으로 활동하고 있었고, 운 좋게도 중간점검 당시 우수학회원으로 분류되어 참가자격이 주어졌다. 총 두개 분야로 이루어지며, track1은 데이터 시각화를 통하여 인사이트를 도출한 뒤, 이에 따른 마케팅 아이디어를 제시하는 분야 track2는 CJ 더마켓 프라임회원 여부를 예측하는 모델링 고도화하는 분야 처음에는 track2 분야가 더욱 흥미로워보였기 때문에 학회 내부 노션 페이지를 통하여 track2 팀매칭을 진행하였으나.. 팀원 모두가 열정덩어리었던 우리는 두 분야 모두 나가기로 결정했다...

[2023 BDA 데이터 분석 공모전] Track1: 시각화 인사이트 (4) - 최종 전략 제시

1차 심사가 끝이 나고 2주정도 결과 보고서를 작성할 시간이 있었다. 하지만 데이터의 양상이 요약 데이터와 다른 부분이 있어서 원래 기대했던 흐름에 맞춰서 분석을 진행하지 못해 막막한 부분이 있었다. 또한 track2의 ipynb 파일과 test.csv 파일 제출 기한이 1주일 뒤였기 때문에 처음 1주일은 track2에 전념한 후, 그 다음 1주일을 track2 track1과 track2를 동시 본선 진출한 우리 팀에게는 발표자료 제작과 동시에 track1 분석 및 최종자료 제작을 해야하는..... 극악무도한 일정이었다. track2 파일을 제출한 뒤 track1 자료는 눈에 들어오지도 않았다... 더군다나 아이디어의 비중이 더 큰 track1이었기에 막막한 느낌이 더 크게 다가왔다. 우리 팀원 총 4명..

[2023 BDA 데이터 분석 공모전] Track1: 시각화 인사이트 (3) - 고객 군집화 시도

이번 track1에서 내가 주도적으로 맡은 부분은 고객 군집화를 위해 클러스터링 기법을 시도한 것이었다. 군집화가 잘 이루어지면, 고객 별 특성에 맞는 마케팅 전략을 제시할 수 있기 때문이다. 하지만 대부분의 변수가 범주형 변수였기 때문에, 거리 기반의 k-means 클러스터링을 진행하는 것은 부적합하다고 판단했다. 따라서 최빈값을 기반으로 비유사도가 낮은 군집을 만들어내는 k-modes 클러스터링을 시도해 보았다. 데이터 전처리 - 변수 추출 총 29개의 변수 중에서 클러스터링에 활용에 필요한 컬럼 15개를 추출해준다. drop_list = ['Unnamed: 0', '거래처', '거래처주문번호', '주문일', '출고예정일', '운송장등록일자', '상품순번', '상품코드', '덤상품수량', '자재코드'..

[2023 BDA 데이터 분석 공모전] Track1: 시각화 인사이트 (2) - 본선 데이터 분석

사실 1차 심사를 통과한 뒤 실제 데이터를 받고 요약 데이터와는 너무나 다른 데이터셋에 놀랐다. 컬럼도 두배정도 양이 되었을 뿐더러... 상품명이 실제 판매 페이지에 올라가 있는 실제 텍스트로 되어있었기 때문에 똑같은 햇반이더라도 햇반 200g x 2, 햇반 200g * 2, 햇반 200g x 2개, 햇반200g x2 등 논리적으로 같은 상품임에도 불구하고 통계 분석을 할 때 다른 데이터로 분류되게 된다. 따라서 이것을 같은 상품으로 묶어 주는 전처리 작업이 필요했고, 이 과정에서 가장 많은 시간을 소요했다. 전처리 brand = ['BYO', 'CJ', 'EXCYCLE', 'VIPS', '계절밥상', '고메', '다담', '다시다', '닥터뉴트리', '더건강한', '딜라이트', '리턴업', '맛밤', ..

[2023 BDA 데이터 분석 공모전] Track1: 시각화 인사이트 (1) - 예비 분석 보고서 작성

연합 빅데이터분석 학회 BDA에서 개최한 공모전에 참가하였다. BDA 학회원 뿐만 아니라 타 대학 데이터분석 학회까지 포함하여 대학생 데이터분석 학회 연합 단위에서 이루어지는 공모전이다. BDA 6기 데이터 분석 중급반으로 활동하고 있었고, 운 좋게도 중간점검 당시 우수학회원으로 분류되어 참가자격이 주어졌다. 총 두개 분야로 이루어지며, track1은 데이터 시각화를 통하여 인사이트를 도출한 뒤, 이에 따른 마케팅 아이디어를 제시하는 분야 track2는 CJ 더마켓 프라임회원 여부를 예측하는 모델링 고도화하는 분야 처음에는 track2 분야가 더욱 흥미로워보였기 때문에 학회 내부 노션 페이지를 통하여 track2 팀매칭을 진행하였으나.. 팀원 모두가 열정덩어리었던 우리는 두 분야 모두 나가기로 결정했다...

[2022 빅콘테스트] 앱 사용성 데이터를 통한 대출신청 예측분석 - 한계 및 보완

먼저 데이터 분석에 대해 무지했던 상태로 공모전에 뛰어든 나 자신을 칭찬하면서 또 반성한다. 베이스가 없었던 내게는 이번 경험을 통해 데이터 분석의 전체적인 흐름, 실전에 필요한 과정 등을 여과 없이 느껴볼 수 있는 기회였기 때문에 엄청난 성장을 거둘 수 있었다. 하지만 그저 흐름을 쫓아 배우기만 했을 뿐 팀을 위해 공헌한 것이 없는것 같았다. 데이터 분석의 기본부터 다시 차근차근 쌓아나아가고 싶은 마음이 들었다. 대출 신청 여부라는 것은 단순히 고객의 신용데이터만 가지고 예측하기에는 정보가 부족한 점이 없지않아 있었던 것 같다. 고객의 정량적 데이터 뿐만 아니라 매수심리와 같은 정성적 데이터, 주변 환경을 변수로서 다룰 수 있다면 더욱 좋은 결론을 낼 수 있었을 것 같다. 해결책으로는 user_spec..

[2022 빅콘테스트] 앱 사용성 데이터를 통한 대출신청 예측분석 - 고객 군집화

이번 공모전에서 내가 주도적으로 맡은 부분은 바로 고객 군집화 부분이다. 먼저 앱을 통하여 대출신청을 받으려는 사용자들을 군집별로 나누기 위해 먼저 log_data 테이블을 살펴보았다. log_data의 event 변수는 사용자들의 활동을 로그로 기록한 변수이며, 기록된 최종 활동이 고객의 특성을 예측하는 데에 사용될 수 있는 변수로 판단되어 이를 우선 Label encoding으로 변환하였다. event 변수의 데이터 고유값이 생각보다 다양하였기 때문에 직접 앱을 실행해서 어떤 화면이 어떤 event로 기록되는 지 살펴보았고, 다음과 같은 프로세스맵을 만들어낼 수 있었다. 빨간색 블럭으로 표시한 부분이 최종 행동일 것이라는 가설 하에 5개의 event를 제외한 나머지 event들은 삭제해 주었다. 또한..

[2022 빅콘테스트] 앱 사용성 데이터를 통한 대출신청 예측분석 - Modeling

모델에 넣고 성능을 확인하기 전, 상관계수를 분석하고 히트맵으로 시각화하는 과정을 통해 변수 간 상관관계를 분석하였다. 변수 간 상관관계가 높은 것이 있으면, PCA(차원축소)를 진행해 주어야 한다. 서로간의 상관관계가 높게 나온 변수들이 없으므로 PCA(차원축소)는 진행하지 않고 분석을 진행하였다. 모델 선택에 있어서 트리 기반 앙상블 모델인 XGBoost 모델과 LightGBM 모델을 놓고 고민하였다. 두 모델 모두 앙상블 학습으로 여러 개의 트리를 결합하여 분석하는 모델이다. 이전 개인회생여부와 개인회생납입여부의 결측치를 예측할 때 user_spec데이터를 train data로 사용하였을 경우 XGBoost 가 더 나은 성능을 보여준 바가 있다. 하지만 그때와는 달리 user_spec 과 loan_..

[2022 빅콘테스트] 앱 사용성 데이터를 통한 대출신청 예측분석 - 데이터 전처리 (2)

모델의 성능을 높이기 위해서 우리 팀은 외부 변수를 추가하기로 결정했다. 이 부분에서는 조금 더 많은 도메인 지식이 필요했다. 리서칭을 통해 은행대출과의 상관관계가 높은 수치나 데이터가 있는지 확인해 보았고, 유한수, 정재호, "주택시장에서의 매매가격지수와 소비심리지수의 관계", 부동산연구, vol.25, no.4, pp. 49-61, 한국부동산연구원, 2015 박연우, 방두완, "주택가격과 은행대출의 상관관계에 관한 연구", 금융연구, vol.26, no.1, pp. 107-141, 한국금융학회, 2012 위 두 논문을 통해 소비자 심리지수와 은행대출과의 상관관계가 높다는 배경적 이론지식을 확인하였다. 따라서 우리 팀은 소비자 물가지수를 파생변수로 추가하여 모델의 성능을 높이고자 하였다. a = {'2..

[2022 빅콘테스트] 앱 사용성 데이터를 통한 대출신청 예측분석 - 데이터 전처리 (1)

데이터 전처리 부분은 우리 팀에서 어느 정도 데이터 처리에 대한 지식이 있으신 인태 형님과 용훈 형님이 대부분 전담하게 되었다. 나는 선배들의 설명을 들으면서 흐름을 정리하고 파생변수 생성과 피쳐 선택에 도움을 줄 수 있는 도메인 지식을 수집하였다. 아래는 형님들께서 진행한 전처리 과정의 간략한 흐름이다. 먼저 user_spec 컬럼의 연속형 변수들의 이상치를 확인하였고, IQR 방식을 활용하여 이상치를 제거해 주었다. 결측치를 대치하거나 예측하는 과정에서 이상치의 존재는 불확실성을 더해주기 때문이다. def dr_outlier(df): quartile_1 = df.quantile(0.25) quartile_3 = df.quantile(0.75) IQR = quartile_3 - quartile_1 co..