728x90

*오늘 얻어낸 것들

1. target의 log화는 성능을 떨어뜨린다. 

2. 오늘 시도했던 잡다한 방법들 모두 성능에 영향을 주지 못하거나 떨어뜨린다 (자잘한게 많아서 뭘 했는지 조차 기억..)

3. 결측값을 평균값으로 일괄 적용X

*현재 시도 중인 것

본래 결측치 값을 평균으로 싹 다 처리했습니다. 그런데 생각해 보니까 날씨 데이터가 있는데 평균값으로 대체 하면 말이 안되더라구요. 예를들어 비가 오는데 기온이 높으면 이치에 어긋나기 때문에 이를 수정하기로 했습니다.

 

 

특히, 마지막 3개는 결측값이 엄청 납니다. 가뜩이나 데이터도 많진 않아서 삭제하기 부담스럽습니다. 그래서 평균으로 대체 하는 것보다 예측값을 넣는게 차라리 낫지 않을까 하는 생각에 뒤에 이 3개 변수를 각각 예측모델링 짜고 있습니다.

전처리 하고 이것저것 자잘하게 처리 하고 그리드 서치 한 결과 test 예측부분에서

릿지모델에서 가장 낮은 mse를 기록했습니다. 해당 모델 가지고 적용하려는 순간 

 

best_model = grid.best_estimator_
best_pred = best_model.predict(test_ozone_scaled[x_colname])
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

 

test_ozone_scaled.isna().sum()
hour                      0
hour_bef_temperature      2
hour_bef_precipitation    2
hour_bef_windspeed        3
hour_bef_humidity         2
hour_bef_visibility       2

 

결측값이 있었던 걸 잊고 있었습니다. 해당 결측값들은 train할때 정확한 정보를 주고자 삭제를 시켰었습니다. 하지만 원본 데이터에는 그대로 존재하기 때문에 이 결측값을 먼저 처리해야 합니다. 결측값이 각 변수 별로 얼마 되지 않기 때문에 기존에 만들어 놓은 함수로 평균값 채우기 할 생각입니다. 오늘이 여기까지 진도 나갔습니다. 더 개선된 내용으로 업로드 하겠습니다. 

728x90

+ Recent posts