프로젝트 주제
장애인 이동권 개선을 위한 장애인 콜택시 대기시간 예측
1. 데이터 탐색
- 시계열 데이터를 가지고 분석하는 프로젝트임
- 장애인 콜택시 운행정보 데이터 셋 + 날씨 정보 데이터 셋
- 연도, 월, 일, 요일, 계절, 공휴일 컬럼을 추가적으로 만들어 줌
- workalendar 라이브러리를 사용해 공휴일을 알아낼 수 있었음 (대체공휴일은 직접 추가했음)
2. 데이터 분석
- 장애인 콜택시 운행정보 데이터 셋의 컬럼들을 연도,월,일,요일 별로 시각화하여 단변량 분석 및 시각화
- 범주형, 수치형 변수를 따로 나누어 통계량 및 시각화 함수 만들기
- 날씨 데이터는 실제 측정값 이지만, 다음 날에 대한 예보 데이터로 간주한다.
-> a 날짜의 장애인 콜택시 운행정보 데이터 + (a+1) 날짜의 날씨 데이터로 다음날의 평균대기시간 예측
- 전체 상관계수 시각화
- 아래 사진과 같이 변수별 단변량 분석을 해보았을 때 낙타 쌍봉우리처럼 나타내지는 변수들이 존재했었음
-> 쌍봉우리 모양의 그래프를 특정 구간별로 잘라서 분석을 진행 보았으나, Target 변수와 상관계수가 크게 높아지지 않았다. 쌍봉우리 모양의 그래프여서 특정 구간으로 나누어 분석을 했을 때의 결과는 목적에 따라 큰 의미는 찾을 수 있으나 데이터의 전체적인 의미를 나타내지 않음을 알 수 있었다. 즉, 위 사진처럼 쌍봉우리의 그래프를 두 구간으로 나누어 상관계수를 구하게 되면 2개의 상관계수가 나오게 되는데, 두 상관계수 또한 구간 별로 나누어 해석이 가능함을 알 수 있었다.
만약 어떠한 가설을 세워 특정 구간으로 나누어 분석 및 해석을 진행 했으면 모델 학습 또한 다른 모델 2개로 학습을 해야한다.
- Target 변수와 강한 관계의 변수, 중간(약한) 관계의 변수, 관계가 없는 변수끼리 나누어봄
3. 모델링
3-1) 머신러닝
모델 | MAE / MAPE |
KNN | MAE : 6.4524 MAPE : 0.1463 |
SVR | MAE : 3.4053 MAPE : 0.0811 |
RandomForest | MAE : 19.5987 MAPE : 0.4372 |
3-2) 딥러닝
모델 | MAE / MAPE |
단순 Fully Connected Layer 층을 쌓은 모델1 | MAE : 18.2473 MAPE : 0.4268 |
단순 Fully Connected Layer 더 깊은 층을 쌓은 모델2 | MAE : 3.1609 MAPE : 0.0761 |
4. 결론
- 머신러닝 SVR 모델과 단순한 딥러닝 모델이 성능이 좋음을 알 수 있었다.
- 데이터 크기가 크지 않아 머신러닝 모델로도 충분한 성능이 나왔을 것으로 판단되어짐.
- 시계열 데이터의 분석 방법에 대해 알 수 있었다. (shift, rolling 함수 적용)