KT에이블스쿨

[KT AIVLE] 미니프로젝트 2차

qkrgusqls 2024. 4. 23. 14:52
미니프로젝트 2차
0318 - 0320

1일차

주제 : 공공데이터를 활용한 미세먼지 농도 예측

타겟 값과 연관이 있는 값들을 단변량 분석 했다. 

먼저, 각 변수마다 결측치 여부와 변수의 기초통계량을 확인했다.

 

 

PM10을 단변량 분석을 진행한 결과이다.

 

df_22 = pd.merge_asof(air_22, weather_22, on='time')
df_23 = pd.merge(air_23, weather_23, on='time')

 

 

weather 데이터와 air 데이터를 time을 기준으로 병합했다. 데이터 구조가 조금이라도 다르면 merge 할 때 전처리를 해주어야 하는 경우가 생긴다. 위 데이터도 df_22가 병합이 잘 안돼서 힘들었다 ...ㅠㅠ 무턱대고 merge하지 않고, 데이터 구조를 확인하는 습관을 들여야겠다. 

 

 

LinearRegression, RandomForest, GradientBoosting를 모델링을 진행하고 MSE, R2score를 통해 성능을 비교했다. 

미세먼지 예측농도에 영향을 미친 feature는 PM10이 압도적으로 높게 나왔다.

 

PM10 feature 때문에 다른 feature들이 눈에 띄지 않았다. PM10을 제외하고도 데이터 분석을 진행하면 좋을 것 같다고 생각했다.

 

2일차 & 3일차 

2차 미니프로젝트 3일차에는 분당교육장에서 진행했다. 

 

주제 : 장애인 콜택시 데이터 분석

 

사용 데이터 :

  • 장애인 콜택시 운행 정보를 담은 open_data.csv
  • 온도, 강수 여부, 습도, 일조량이 포함된 날씨 데이터 weather.csv

open_data column 

'기준일': 'Date',    
'차량운행': 'vehicle_trip',    
'접수건': 'requests',    
'탑승건': 'passengers',    
'평균대기시간': 'average_waiting_time',    
'평균요금': 'average_fare',    
'평균승차거리': 'average_distance'

 

 

생각했던 것 보다 weather_data의 칼럼들과는 강한 상관관계를 보이지 않았다. 

 

target = 'next_day_waiting_time'
x = data.drop(columns = [target], axis =1)
y = data[target]

 

다음 날 대기시간을 target 값으로 잡고 x, y 분리를 진행했다. 미니프로젝트를 통해 직접 실습을 해보니 import 해야하는 코드가 또 헷갈렸다. 실습을 통해 꾸준히 복습하는게 중요한 것 같다고 생각했다. 

 

모델 한 개로만 모델링이 잘 되는 것을 확인하고 점심을 먹었다! 

 

KT 밥.. 금방 배고파졌다

 

 

https://naver.me/GrSqNEgk

 

파스쿠찌 분당KT계원점 : 네이버

방문자리뷰 490 · 블로그리뷰 15

m.place.naver.com

 

처음으로 팀원들과 다같이 회사 식당에서 밥도 먹고 바로 앞 파스쿠찌에서 초콜릿 라떼도 사먹었다! 확실히 대면으로 모이니 어색함도 덜하고 프로젝트 진행에 속도가 붙어서 좋았다.

 

 

 

 

점심이후 시간에는 다양한 모델에 전처리 한 데이터로 모델링을 진행했다.

최종적인 모델 성능을 비교했을 때, 모든 팀원이 LGBM의 성능이 가장 좋다는 결과를 도출했다. 예측 값과 실제 값의 추이가 가장 비슷했다. 

 

발표 시간에 데이터를 심도있게 분석해서 모델링을 해본 팀들의 결과를 보면서 더 많은 것을 얻어갈 수 있었다.