대회 링크
https://dacon.io/competitions/official/236114/overview/description
앞선 simple EDA
2023.06.18 - [머신러닝] - 데이콘 Basic 자동차 가격 예측(Simple EDA)
train 데이터 셋을 보면...
모델출시년도가 생산년도보다 앞선 데이터들이 있었다!
train[train['모델출시년도'] > train['생산년도']]
202개 정도가 있다!...
이것은 오류라고 보고 과감히 삭제해주자!(사실 test셋에도 이런 데이터들이 있어서 그냥 놔두는게 맞는 것 같긴 하다!)
train = train[~(train['모델출시년도'] > train['생산년도'])].reset_index(drop=True)
그리고 eda에서 살펴봤듯이 train데이터 셋이 250만 킬로를 탄 이상치가 존재했다!
train[train['주행거리'] >= 1000000]
한 행이 존재하는데...
이것은 이상치라고 보고 삭제해주자!
train = train[~(train['주행거리'] >= 1000000)].reset_index(drop=True)
이제 train, test셋을 문제와 정답으로 나눠주자!
X_train = train.drop(columns=['ID', '가격'])
y_train = train['가격']
X_test = test.drop(columns=['ID'])
범주형 컬럼이 4개가 있었는데...
원핫인코딩을 하면... 컬럼이 폭발적으로 늘어나니 레이블 인코딩을 선택해보자!
ordinal_features = ['브랜드', '차량모델명', '판매도시', '판매구역']
for feature in ordinal_features:
le = LabelEncoder()
le = le.fit(X_train[feature])
X_train[feature] = le.transform(X_train[feature])
for label in np.unique(X_test[feature]):
if label not in le.classes_:
le.classes_ = np.append(le.classes_, label)
X_test[feature] = le.transform(X_test[feature])
레이블 인코딩 부분은
https://dacon.io/competitions/official/236114/codeshare/8437?page=1&dtype=recent
베이스라인 코드에 더 자세히 나와있다!
이제 파생변수를 생성해보자!
생산년도에서 모델출시년도를 뺀 파생변수를 생성해보자!
X_train['연도차'] = X_train['생산년도'] - X_train['모델출시년도']
X_test['연도차'] = X_test['생산년도'] - X_test['모델출시년도']
연식(자동차 나이)를 생성해보자!
연식의 max값이 2022여서 모델 생산년도가 연식1이 되게끔 2023에서 빼줬다!
X_train['연식'] = 2023 - X_train['생산년도']
X_test['연식'] = 2023 - X_test['생산년도']
여기까지가 데이터 전처리를 간단하게 해봤다!
'머신러닝' 카테고리의 다른 글
데이콘 Basic 자동차 가격 예측(모델링) (0) | 2023.06.28 |
---|---|
데이콘 Basic 자동차 가격 예측(Simple EDA) (0) | 2023.06.18 |
댓글