본문 바로가기
머신러닝

데이콘 Basic 자동차 가격 예측(데이터 전처리)

by 헬푸밍 2023. 6. 28.

대회 링크

 

https://dacon.io/competitions/official/236114/overview/description

 

데이콘 Basic 자동차 가격 예측 AI 경진대회 - DACON

분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.

dacon.io

 

앞선 simple EDA

2023.06.18 - [머신러닝] - 데이콘 Basic 자동차 가격 예측(Simple EDA)

 

데이콘 Basic 자동차 가격 예측(Simple EDA)

머신러닝 스터디에서 데이콘 자동차 가격 예측 대회를 참여해봤다! 대회 링크 https://dacon.io/competitions/official/236114/overview/description 데이콘 Basic 자동차 가격 예측 AI 경진대회 - DACON 분석시각화 대

helpming.tistory.com

 

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 

 

[Baseline] DecisionTree Regressor

데이콘 Basic 자동차 가격 예측 AI 경진대회

dacon.io

베이스라인 코드에 더 자세히 나와있다!

 

이제 파생변수를 생성해보자!

 

생산년도에서 모델출시년도를 뺀 파생변수를 생성해보자!

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['생산년도']

 

여기까지가 데이터 전처리를 간단하게 해봤다!

댓글