5주차 | 2차 미니프로젝트

KT AIVLE SCHOOL 5기 5주차에 진행한 2차 미니프로젝트 내용 정리 글입니다.

1일차

주제

  • 공공 데이터 활용한 미세먼지 농도 예측
    • 서울 지역의 미세먼지 데이터와 날씨 데이터를 활용하여, 미세먼지 예측에 관련 있는 데이터 항목으로 데이터를 구성, 전처리 하여 미세먼지 농도를 예측하는 머신러닝 모델 구현

데이터 전처리 및 분석

  • 시계열 데이터로 time 변수를 기준으로 미세먼지, 날씨 데이터 merge
  • 1시간 후 미세먼지 농도를 target 으로 설정
  • 시계열 데이터로 ffill, bfill 사용 → 놓친 부분
  • 날씨 데이터는 생각보다 무의미 했고, 미세 먼지 및 대기 오염 물질 정보가 관련이 깊었다

모델링

  • Linear Regression, Random Forest, Gradient Boost, XGBoost, LightGBM 모델 사용
  • MSE, R2평가 결과 Linear Regression, Random Forest 모델의 성능이 가장 좋았다
  • 변수 중요도는 PM10 변수가 압도적이고 전날 미세먼지, CO, PM25, NO2가 다음으로 높았다

2 ~ 3일차

주제

교통 약자 콜택시 대기 시간 예측

도메인 이해

  • 장애인 콜택시: 중증 장애인 등 교통 약자의 이동과 편의를 지원하기 위하여 도입된 대중교통
    • 콜접수 → 배차 → 운행

데이터 소개

  • 날씨 정보 : 날씨 데이터 → 다음날에 대한 예보 데이터로 간주하여 모델링에 사용
  • 운행 정보 : 이동 거리, 접수 건수 등 콜 택시 운행 관련 정보

데이터 전처리 및 분석

  • 날씨 정보를 하루 댕겨 와서 운행 정보와 merge → 이 부분이 많은 사람들에게 헷갈리는 부분이었다
  • 운행 정보는 유용한 변수들이 많았다
  • 주말과 평일에 따라 운행 정보들이 차이를 보였다
  • 날씨 정보는 그렇게 유의미하지 않았다
  • 날씨 및 운행 정보들을 각각 대기 시간과의 비율 정보를 만드니 유의미한 변수들이 많이 생성되었다
  • 익일의 평균 대기 시간을 target으로 설정

모델링

  • Linear Regression,SVM, KNN, Decision Tree, Random Forest, Gradient Boost, XGBoost, LightGBM 모델 사용 → Linear Regression 모델의 성능이 계속 좋았다
  • 파생 변수를 만들어 성능을 높이고자 했다 → 그렇게 향상되지 않았고, 여전히 Linear Regression 의 성능이 가장 좋았다
  • LightGBM 모델의 변수 중요도를 이용하여 상위의 변수들로만 성능 측정
    • 결국 Linear Regression, SVM 모델에서 성능이 가장 좋았다
    • 변수 중요도는 7일 평균 대기시간 변수가 압도적이었고 booking_count, weekday, boarding_rate, weekday_avg_wait_time_ratio, boarding_count **변수들의 중요도가 높았다

결론

  • 데이터의 수가 너무 적어서 복잡한 모델은 성능을 제대로 보이지 못한 것 같다
  • 유의미한 변수 생성을 못한 것 같다
  • 추가적인 데이터들이 있었으면 좋았을 것 같다

느낀점

  • 데이터 분석을 통해 얻은 인사이트를 활용하여 파생 변수를 생성해야 할 거 같다
  • AutoML 패키지와 같은 다양한 방법들을 활용해 봐야겠다