320x100
* 퇴근후딴짓 님의 강의를 참고하였습니다. *
반응형
[문제] 중고자동차 가격 예측하기
ㅇ 예측할 값(y): price
ㅇ 평가 : RMSE (Root Mean Squared Error)
ㅇ data : train.csv, test.csv
ㅇ 제출 형식: result.csv파일을 아래와 같은 형식(수치형)으로 제출
ㅇ 답안제출 참고 : pd.read_csv('result.csv') 로 제출 코드 확인
320x100
[풀이]
## 데이터 불러오기
import pandas as pd
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
## EDA
# 데이터 크기 확인
train.shape, test.shape
# 샘플 확인 (시험환경에서는 display 대신 print 활용)
display(train.head(3))
display(test.head(3))
train.info()
# 기초 통계값 확인
train.describe()
test.describe()
train.describe(include='O')
test['transmission'].value_counts()
display(train.isnull().sum())
display(test.isnull().sum())
y_train = train.pop("price") ## 학습 데이터에서 타겟컬럼 제거
## 수치형 활용
cols = ['year', 'mileage', 'tax', 'mpg', 'engineSize']
train = train[cols]
test = test[cols]
# 훈련/검증 데이터 분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train, y_train, test_size=0.2, random_state=2022)
X_tr.shape, X_val.shape, y_tr.shape, y_val.shape
# 랜던포레스트 모델 학습(회귀)
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor()
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)
# rmse 함수정의
from sklearn.metrics import mean_squared_error
def rmse(y_true, y_pred):
return mean_squared_error(y_true, y_pred)**0.5
rmse(y_val, pred)
## 수치형 + 범주형 활용
# 범주형 데이터는 원핫 인코딩
train = pd.get_dummies(train)
test = pd.get_dummies(test)
# 훈련/검증 데이터 분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train, y_train, test_size=0.2, random_state=2022)
X_tr.shape, X_val.shape, y_tr.shape, y_val.shape
# 랜던포레스트 모델 학습(회귀)
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor()
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)
rmse(y_val, pred)
# 최종 예측 및 파일 제출
pred = rf.predict(test)
result = pd.DataFrame({
'pred':pred
})
result.to_csv("result.csv", index=False)
pd.read_csv('result.csv')
# 최종 확인
y = pd.read_csv("y.csv")
rmse(y, pred)
# 정수형으로 변경
pred2 = pred.astype(int)
rmse(y, pred2)
320x100
반응형
'자격증공부 > 빅데이터분석기사' 카테고리의 다른 글
[빅데이터분석기사] 모의고사 5 (누적합, 결측치, 이상치, 정렬, 회귀, 정규분포검증) (0) | 2023.06.30 |
---|---|
[빅데이터분석기사] 모의고사4 (표준편차, 그룹합, 값 대체, 회귀, 일원배치법) (0) | 2023.06.30 |
[빅데이터분석기사][작업형1] 4회 기출문제 풀이(기초통계, 날짜) (0) | 2023.06.22 |
[빅데이터분석기사][작업형2] 4회 기출문제 풀이 (분류, 2개 데이터set) (0) | 2023.06.19 |
[빅데이터분석기사][작업형3] 예시문제 (쌍체표본 t-검정) (0) | 2023.06.19 |