해결된 질문
작성
·
281
·
수정됨
0
안녕하세요! 강의 복습중 질문 드립니다.
1) 평가방법이 RMSE 라는건 출제자가 제가 작성한 코드를 채점할때 RMSE 를 사용하여 채점한다는건가요? 아니면 수험자가 코드작성시 RMSE를 사용하여 평가한 결과물을 제출해야하는건가요? ㅠㅠ (즉, 평가방법이 작성한 코드안에 꼭 포함이 되어야하는지 궁금합니다..!)
2) 제기준 최대한 간단하게 코드를 작성해보았는데.. 답변에 쓰여있는 결과물과 예측값의 수치가 선생님이 작성하신 코드의 답변과는 살짝씩 다릅니다 ㅠㅠ 각자 작성한 코드의 설정에 따라서 예측값이 조금씩 상이한걸까요? 아니면 제 코드에서 틀린부분이 있을까요?
제가 작성한 코드는 아래와 같습니다
# 데이터 불러오기
import pandas as pd
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
#데이터확인하기
#train(3759,9), #test(1617,8)
#인코딩
from sklearn.preprocessing import LabelEncoder
cols = train.select_dtypes(include = 'object').columns
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
#데이터분리
from sklearn.model_selection import train_test_split
x_tr,x_val,y_tr,y_val = train_test_split(train.drop('price',axis=1),train['price'],test_size=0.2,random_state=2022)
#모델링
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(random_state=2022)
model.fit(x_tr,y_tr)
pred = model.predict(x_val)
#평가
#예측
pred = model.predict(test)
#저장
pd.DataFrame({'price':pred}).to_csv('result.csv',index=False)
pd.read_csv('result.csv')
결과물 :
price
0 15523.21
1 16663.56
2 14343.95
3 18657.40
4 6353.98
... ...
1612 11539.81
1613 17506.87
1614 9601.09
1615 14062.15
1616 4549.09
1617 rows × 1 columns
답변에 있는 결과물 :
pred
0 15434.26
1 15676.44
2 14335.40
3 18634.28
4 6329.75
... ...
1612 11524.45
1613 17570.62
1614 9965.65
1615 14391.21
1616 5023.73
답변 1
0
평가 지표가 RMSE다 라는 것은 제출한 test데이터에 대한 예측값 csv를 채점할 때 RMSE로 평가하는 것입니다. 사용자가 검증데이터로 RMSE로 평가를 하던 말던 상관없습니다. csv파일이 중요합니다. 검증 데이터로 자체 평가 한다면 모델을 더 개선할 수도 있겠죠!!
따라서 RMSE 계산이 갑자기 생각이 안난다면 MAE나 MSE라도 검증을 해보길 추천하고 만약 그것도 어렵다면 검증 없이 csv파일만 제출하는 방법도 있습니다.
예측값은 동일 할 수가 없어요! 다르게 나오는 것이 맞습니다 :)
답변감사드립니다!!!