포트폴리오 속 프로젝트 정리/후기

3 minute read

20대는 왜 백신을 맞아야할까?

아이펠에서 진행한 미니 해커톤으로 코로나 데이터셋에 관해 분석을 하고 나름의 가설을 내리고 결론을 찾아보는 과정이였습니다.

주제 자체도 재밌었고 한창 시각화에 흥미를 느끼고 있던 시기라 정말 재밌게 진행했던 미니 해커톤이였습니다.

코로나 초창기 데이터라특수한 경우인 ‘신천지 감염 사례’가 대부분을 차지하고 있었습니다. 따라서 현재에 바로 적용시킬 수 있는 데에는 무락 해석하기는 어렵지만 비슷한 패턴을 보일 것이라고 판단했습니다.

데이터를 우선적으로 살펴보며 궁금했던 것들을 생각해보고 이에 대한 해답을 각각 데이터를 통해 찾아내려고 많은 노력을 기울였습니다.

최종적으로 선택한 목표는 20-30대가 백신을 맞아야하는 이유에 대해서 데이터를 통해 파악해보는 것으로 정했습니다. 따라서 여러 방면에서 파악한 결과 접촉자 수는 월등히 많고 치명율은 현저히 낮기 때문에 오히려 전파를 많이 시키고 다닐 수 있겠다는 생각을 하게 됐습니다.

Pandas, Seaborn, Matplotlib등을 사용해 시각화를 진행했습니다.

상세한 내용은 노트북에 나름 잘 정리가 되어있는 것 같아 노트북 링크를 함께 올려두겠습니다.

링크

수원시 치안 빅데이터 시각화 및 아이디어 공모전

COMPAS에서 진행한 공모전이였습니다. 팀은 캐글코리아 카톡방에 공고가 올라와서 참여하게 됐습니다.

결과적으로는 예선탈락을 한 만큼 아쉬움이 많이 남습니다. 한가지 명확한 문제점을 파악하고 해결하지 못하고 너무 두루뭉술하게 진행한 게 원인이라고 생각을 합니다.

저희 팀이 주제로 선택한 건 시각화를 통해 문제를 파악하고, 일종의 안전지수를 도출한 뒤에 맞춤형 치안 대상지를 선정하는 것이였습니다.

수원시가 인구수 대비 신고수, 파출소 대비 신고수, 경찰관 1인당 담당 인구수가 가장 많은 지역임을 데이터와 기사등을 통해 파악했고 이를 토대로 적재적소에 맞춤형 치안을 제공하자는 의도였습니다.

EDA를 하는 과정과 시각화를 하는 과정은 재밌었지만 시작부터 명확한 플랜없이 진행한 점, 결국엔 Tableau를 통해 결과를 내야한다는 점을 파악했음에도 잊고 있었던 점이 겹쳐져서 아쉬운 결과를 냈습니다.

Screen Shot 2021-12-23 at 5.49.41 PM.png

상당히 조악하지만 나름 인터랙티브하게 시각화를 진행해보기도 했습니다.

DACON 주식 종료가격 예측대회

위 공모전이 인연이 되어 진행하게 된 프로젝트였습니다. KOSPI-200, KOSDAQ-150의 종목의 5일 간의 종가를 예측하는 것이 목표였습니다. 실제 주식 예측에 사용되는 다양한 기술적 지표를 feature로 사용해봤고 모델 또한 선형회귀부터 시작해서 XGBOOST, LightGBM등 다양한 시도를 했습니다.

프로젝트에서는 feature에 대한 아이디어를 내거나 XGBOOST를 Optuna를 통해 tuning하는 역할을 주로 맡아서 진행했습니다. 여러 테스트를 진행해보니 feature는 종가만 모델은 선형회귀를 사용하는 것이 가장 좋았습니다.

그래도 Public 스코어 기준으로 만족할만한 성능이 나오지 않아 일종의 시나리오 개념으로 USD/JPY값이 일정 수준이 넘으면 2%를 전반적으로 떨어뜨리는 아이디어를 도입하게 됐습니다.

운이 좋게도 오미크론 쇼크와 더불어 아이디어가 잘 맞아들어가서 좋은 성능이 나왔고, private 스코어1위 그리고 대상을 받게 됐습니다.

기억에 남는 것은 전반적으로 다른 상위권에 위치한 팀들도 public에서는 좋은 성적이 나오지 않았지만 private에서는 상위권에 든 팀들이 있었습니다. 실제 주가 예측에 있을 수 있는 다양한 변수들 때문에 그런 결과가 나온 것이 아닐까하고 생각을 하고 있습니다.

프로젝트를 진행하면서 스태킹등의 기법을 많이 사용하지 않은 것이 public 기준으로는 성능이 크게 개선되지 않았는데 이 점이 조금 아쉽습니다. 주가 예측은 알고리즘적인 접근만을 하는 것보다는 시나리오, 전략등을 생각하고 rule-based도 더해지는 것이 좋겠다라는 생각도 들었습니다.

SOCAR X AIFFEL 날씨데이터를 이용한 지역별 수요특성 분석 및 예측

쏘카와 함께 진행한 최종 해커톤입니다. 처음 데이터를 살펴보며 전개해봤던 주제는 전기차 문제, 탈퇴 이용자 문제, 유휴율 문제등이 있었습니다. 하지만

  1. 전기차의 경우에는 차종을 명확하게 알 수 없다는 문제가 있어서 진행하지 못했습니다. 추후에 문제정의를 전기차의 실제적인 수요를 보기보다는 이용에 관련된 다른 feature들을 살펴보며 잠재수요를 파악해보려 시도했지만 이 또한 쉽지 않아 다른 주제를 선택하게 됐습니다.
  2. 탈퇴 이용자는 일반 이용자보다 이용시간이 짧을까, 길까 어느 지역에 많을까에 대한 분석을 진행하고 이 문제를 어떻게 해결할 수 있을까에 대해서 생각해봤습니다. 하지만 탈퇴 이용자가 전체 데이터에서 차지하는 부분이 현저하게 적어 패턴을 파악하기 힘들어 제외하게 됐습니다.
  3. 쏘카와의 피드백 이후, 차량이 쏘카존에서 놀지 않도록 가동률을 높이고, 유휴율을 낮추는 방법을 찾아보려고 노력했습니다. 실제로 데이터에는 해당 쏘카존에 차량이 몇대 있는 지 명확히 알 수 없어서, 로그 데이터를 통해 해당 지역에 이용횟수의 최대값을 차량대수라고 생각해도 되지 않을까? 라는 생각이 들었습니다. 하지만 당연하게도 한 차량이 100번 나가는 것과 100대의 차량이 1번씩 나가는 경우가 같게 체크가 되기 때문에 사용할 수 없었습니다. 단순히 이용량 만으로는 유휴율, 가동율에 대한 이야기를 진행하기 어려움이 있다고 판단해 다른 주제를 선택하게 됐습니다.

따라서 쏘카와의 피드백 과정에서 날씨 정보를 현재는 현황을 파악하는 위주로 많이 사용하고 있지만 이를 통해 예측에는 아직 사용하는 방법에 대해 모호하다는 의견을 받게 됐고, 날씨 오픈데이터를 통해 수요 예측을 하는 방향으로 목표를 정하게 됐습니다.

Metric은 SMAPE를 사용했고, 매출에 직결되는 지역별, 일별 이용시간을 target으로 삼았습니다.

모델링은 주가 예측을 했던 경험을 살려 비슷하게 선형회귀, XGBOOST등을 비롯한 다양한 시도를 했습니다.

눈에 띄게 좋은 성능을 내지는 못해 아쉬웠지만 날씨 데이터를 어떻게 사용할 수 있을 지에 대한 아이디어를 여러 방면으로 생각할 수 있었습니다.

마지막 해커톤 프로젝트 관련해서는 별도로 따로 글을 한번 작성해 볼 예정입니다.

Tags:

Categories:

Updated:

Leave a comment