점수차가 많이 나는데 따로 하신게 있으신가요?
1
2 asked
안녕하세요 선생님
선생님 인강 보면서 기출을 풀어보면서 시험에 대비하고 있습니다.
근데 기출 5회에서 2유형 선생님의 baseline과 제 baseline 수치가 너무 달라서 이렇게 Q&A를 보냅니다.
선생님 baseline(랜포)은 1296이 나오는데 제가 한 baseline(랜포)은 1400대가 나옵니다
혹시 제가 뭘 잘 못한게 있는지 궁금합니다
아래는 제가한 코드입니다!
#eda
print('\n====데이터 크기=====')
print(train.shape,test.shape)
print('\n====데이터 정보=====')
print(train.info())
print('\n====train 결측치=====')
print(train.isnull().sum())
print('\n====test 결측치=====')
print(test.isnull().sum())
print('\n====카테고리=====')
cols=train.select_dtypes(include='O').columns
for col in cols:
set_train=set(train[col])
set_test=set(test[col])
same=set_train==set_test
if same:
print(col,'O')
else:
print(col,'X')
print('\n====타겟 기초 =====')
print(train['price'].describe())
# 전처리
target=train.pop('price')
train=pd.get_dummies(train)
test=pd.get_dummies(test)
# print(train.shape,test.shape)
#검증
from sklearn.model_selection import train_test_split
X_tr,X_val,y_tr,y_val=train_test_split(train,target,test_size=0.2,random_state=42)
print(X_tr.shape,X_val.shape,y_tr.shape,y_val.shape)
# rf
from sklearn.ensemble import RandomForestRegressor
rf=RandomForestRegressor(random_state=42)
rf.fit(X_tr,y_tr)
pred=rf.predict(X_val)
#학습
from sklearn.metrics import root_mean_squared_error
print('===rf===')
print(root_mean_squared_error(y_val,pred))
#lg
import lightgbm as lgb
lg=lgb.LGBMRegressor(random_state=42,verbose=-1)
lg.fit(X_tr,y_tr)
pred=lg.predict(X_val)
print('==lg==')
print(root_mean_squared_error(y_val,pred))
#lr
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
lr.fit(X_tr,y_tr)
pred=lr.predict(X_val)
print('==lr==')
print(root_mean_squared_error(y_val,pred))
#결과
pred=lg.predict(test)
submit=pd.DataFrame({'pred':pred})
submit.to_csv('result.csv', index=False)
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. anycallkjs님께서 작성하신 코드와 선생님께서 제시하신 baseline 값의 차이로 인해 고민이 있으시군요. 이런 경우에는 여러 가지 요인들이 RMSE (Root Mean Squared Error) 값에 영향을 줄 수 있습니다. 다음은 점검해 보면 좋을 몇 가지 사항입니다:
데이터 전처리:
- 코드에서
pd.get_dummies()함수를 사용하여 범주형 변수를 인코딩하고 있으나, train 데이터와 test 데이터가 각각 다른 범주를 가질 수 있다는 점을 염두에 두어야 합니다. 동일하게 맞춰주셨는지 확인해보고, 필요시 두 데이터셋을 합친 후 다시 인코딩을 적용해보세요.
- 코드에서
결측치 처리:
- 데이터셋 내부에 존재하는 결측치를 어떻게 처리했는지가 중요한데요, train과 test 데이터셋에서 결측치를 체크한 후 동일한 방법으로 처리했는지 확인이 필요합니다.
- 데이터셋 내부에 존재하는 결측치를 어떻게 처리했는지가 중요한데요, train과 test 데이터셋에서 결측치를 체크한 후 동일한 방법으로 처리했는지 확인이 필요합니다.
모델 하이퍼파라미터:
- RandomForestRegressor의 하이퍼파라미터가 기본값으로 설정되어 있어서 결과 차이가 발생할 수 있습니다.
n_estimators,max_depth,min_samples_split등 특이사항이 없는지 확인해보세요.
- RandomForestRegressor의 하이퍼파라미터가 기본값으로 설정되어 있어서 결과 차이가 발생할 수 있습니다.
평가 지표 함수:
- 코드에서 사용한
root_mean_squared_error는 기본 제공되는 sklearn의 함수가 아닙니다. 일반적으로sklearn.metrics.mean_squared_error로부터 RMSE를 계산할 수 있습니다. 아래 코드를 참고하세요:
from sklearn.metrics import mean_squared_error rmse = mean_squared_error(y_val, pred, squared=False) print("RMSE:", rmse)- 코드에서 사용한
위 사항들을 하나씩 점검해보시면 모델 성능 차이의 원인을 파악하는 데 도움이 될 것입니다. 이와 관련한 유사한 질문이 있던 게시물을 추천드리니 참조하시기 바랍니다:
이 질문에서는 데이터 처리 및 모델 평가 하면서 발생할 수 있는 변수형 성능 영향에 대해 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
작업형1 강의 수강 완료 후..
0
11
0
작업형1 모의문제 4번에 3)문제 질문
0
16
2
이상치 전처리 작업
0
25
2
평가결과값 문의
0
28
2
시계열 데이터 날짜와 시간 format
0
31
2
평가지표 F1 스코어 질문드립니다.
0
26
2
작업형 2 기출7회분에서
0
38
2
작업형2 모의문제1 (30강)
0
34
2
수강 기간 연장 문의 드립니다.
0
41
2
수강 계획과 관련해 문의 드립니다.
0
28
2
작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?
0
50
2
작업형 1 -연습문제 4-6
0
38
2
작업형 1 유형 부분
0
42
2
작업형 1 (삭제예정, 구 버전)
0
51
2
수강기간 연장 문의드립니다.
0
38
2
2유형 레이블 인코딩 VS 원핫 인코딩
0
37
3
수강기간 연장 문의드립니다.
0
44
2
인덱스 슬라이싱
0
37
2
질문 드립니다.
0
50
2
강의 내용 관련 질문드립니다~
0
46
2
수강 연장 문의
0
63
2
강의자료 일괄 다운로드
0
61
2
수강기간 연장 문의드립니다
0
48
2
list 문제 질문드립니다~
0
38
2

