ML mini project 33. 비행기 지연 시간 예측

최원빈·2023년 10월 11일
0

ML mini project 02

목록 보기
7/13
post-thumbnail

해당 포스트는 패스트 캠퍼스에 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝 SIGNATURE를 공부한 뒤 복습을 위해 각색하여 작성하였습니다.

01. 개요

이번 미니 프로젝트에서는 여러 테이블들을 join하여 비행기 지연 시간을 예측하는 회귀 문제 실습을 진행했습니다. 지연 시간 예측이라는 주제는 처음으로 다루어본만큼 배운 내용도 많았습니다. 하지만 이번 글에서는 간략하게 2가지 내용을 다루어보고자 합니다. 첫번째는 날씨 데이터의 결측치를 채우기, 두번째는 feature transformation 과정에서 optimial binning을 활용한 feature 가공입니다.

02. what have I learned?

첫번째로 scatterplot으로 categorical 변수 시각화입니다. 이 부분이 저에게 크게 다가왔던 부분은 당연스럽게도 이렇게 해본적이 없어서이기 때문입니다.. 보통 scatterplot을 사용할 때는 numeric 변수들의 correlation 분포를 그릴때만 사용한다는 안일한 생각을 했었습니다.

이 데이터는 비행기 지연 시간(분 단위)의 분포를 항공사별로 나타낸 것입니다. 물론 boxplot이 사분위수를 보여주며 데이터의 분포를 잘 보여주고 있는 것을 확인할 수 있습니다. 하지만 scatterplot으로 나타낼시에는 데이터 포인트가 어디에 있는지 직관적으로 보여줍니다. 항공사별로 지연시간이 어떻게 분포되었는지를 알 수 있어 항공사별로의 비교 분석이 용이했습니다.

다음은 binning을 활용한 feature 가공입니다.

binngin을 적용한 데이터 컬럼은 바람 'wind_dir'로 비행을 한 지역의 바람 방향을 나타내는 변수입니다. 이 값의 unique한 값은 37개였습니다. 하지만 37개의 값을 그대로 적용한다면 데이터가 sparse해질 수 있어 범위를 정하여 위의 이미지와 같이 binning을 해주었습니다. 위 예시에서는 임의로 숫자를 정하여 binning을 해주었습니다.

하지만 이전 미니프로젝트에서 OptimalBinning을 활용하여 binning을 해주었던 적이 있습니다. 미니 프로젝트를 진행하며 해보지는 않았지만, 추후에 OptimalBinning 라이브러리를 활용하여 transform 함수를 통해 binning이 된 변수를 활용해보도록 하겠습니다.

03. 마무리하며

이번 글에서는 많은 내용을 다루지는 않았지만 유용하게 쓰일 수 있는 시각화방법과 추가로 해볼 수 있는 데이터 가공 아이디어까지 생각해볼 수 있는 시간이었습니다.

이번 미니 프로젝트는 회귀문제로서 모델의 성능을 mean_squared_error로 평가했습니다. 그런데 만약 지연시간의 구간을 나누어서 binary classification (지연 0 or 지연 x) 혹은 multi-class classification 문제로 변형하면 어떨까하는 생각이 들었습니다. 이전 미니 프로젝트에서 회귀문제는 직관적으로 모델의 결과를 해석하기에 어려움이 있을 수 있다는 생각이 들어 해당 아이디어를 떠올려보았습니다. 이 부분은 이번 글 작성을 완료한 후 제가 시도해보도록 해보겠습니다..! 과연 어떤 결과가 나올까요?!

부족한 글 읽어주셔서 감사합니다:)

profile
차가운 머리와 따뜻한 마음

0개의 댓글