물류 유통량 예측 경진대회

알고리즘 | 정형 | 회귀 | 운송량 | RMSE

  • moneyIcon Prize : 총 100만원
  • 1,396명 마감

 

데이콘 스쿨 3기 과제

2022.04.01 16:02 2,365 Views language

먼저 송하인과 수하인 격자공간고유번호 중 앞 5자리로 구분하여 데이터를 변환하였고 이후 새로운 column으로 추가시켰습니다.
train['격자공간고유번호_n5'] = train['격자공간고유번호'].astype(str).apply(lambda x: x[:5])
이후 물품 카테고리와 5자리 송하인 및 수하인 격자공간고유번호 데이터를 Mean Target Encoding으로 전처리 작업을 진행했습니다.
for column in ['물품_카테고리','송하인_격자공간고유번호_n5','수하인_격자공간고유번호_n5'] : 
    target_encoder = ce.target_encoder.TargetEncoder(cols=[column])
    target_encoder.fit(train[column], train['운송장_건수'])
끝으로 RandomizedSearchCV를 KFold(n_splits=5, shuffle=True, random_state=0)에 적용하여 학습 후 최적의 모델로 적용한 데이터 예측 값을 도출했습니다.
kf = KFold(n_splits=5, shuffle=True, random_state=0)
random_params = {'n_estimators' : range(50,151), 'max_depth' : range(2,6)} 
rf = RandomForestRegressor()
rf = RandomizedSearchCV(rf, param_distributions= random_params, n_iter=30, scoring= 'neg_root_mean_squared_error', cv = kf) 
rf.fit(new_train,train[['운송장_건수']])

Code