지금까지 공부한 머신러닝 '회귀'를 바탕으로, 캐글의 자전거 대여 수요를 예측하는 대회에서 사용된 데이터를 이용하여 회귀 모델을 모델링& 평가를 해보려 한다. 단순히 내용 리뷰를 하지는 않을 것이며, 연습하면서 새로 알게 된 것이나 어려웠던 것들을 위주로 정리해보려 한다.
▼ 데이터 다운로드(캐글 홈페이지) ▼
www.kaggle.com/c/bike-sharing-demand
혹은 여기서 바로 다운
📌 concat / axis = 0 / reset_index( )
concat을 이용하여 두 데이터 프레임을 붙이는데, axis = 0이라는것은 아래에 붙인다는 의미이다. (df1 아래에 df2을 붙인다.) 이때 reset_index( )를 사용하는 이유는 두 데이터 프레임 모두 0부터 시작해서 번호가 매겨져 있기 때문에 그냥 붙이게 되면 인덱스가 중복이 되기 때문에 reset_index를 해주는 게 좋다.
axis=0과 axis=1은 사용할 때마다 헷갈리곤 했는데, 이번 기회에 확실하게 알게 되었다.
📌 subplots
subplots 사용하는 구체적인 방법은 이곳에 정리했다. 여태까지는 시각화를 할 때 변수 하나하나 그렸는데 한 번에 그리는 방법을 처음 알게 되어서 앞으로 자주 사용하게 될듯하다.
📌 정규성 파악
이번 연습에서 잘 안되었던 것 중 하나가 데이터가 정규분포를 그리고 있는지 확인하는 것인데, 사실 어떻게 하는 것인지 이해가 되지 않고 있다가. 참고 자료를 찾아서 따라 해 봤다. 원래 데이터를 가지고 정규성을 확인해 봤을 때는 위쪽의 2 그래프와 같이 정규성이 많이 깨져있는 것을 알 수 있었는데, 아웃라이어를 제거한 뒤 정규분포를 확인했을 때는 그 전보다는 정규성을 보이고 있다. 사실 이것도 완전한 정규분포라고 할 수는 없지만! 이러한 작업을 하기 전, 후를 비교했을 때 실제로 모델 평가 단계에서 R squred의 수치가 조금 상승했고, MSE는 하락했다.
📌 연습 코드
📌 참고 문헌
1. www.boostcourse.org/ai222/lecture/24523
2. github.com/corazzon/KaggleStruggle/blob/master/bike-sharing-demand/bike-sharing-demand-EDA.ipynb