인프런 커뮤니티 질문&답변

콘스트님의 프로필 이미지
콘스트

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

회귀 실습 중 rmse 결과값 질문

해결된 질문

작성

·

584

·

수정됨

1

안녕하세요 선생님

현재 모델링 및 평가(회귀)부분을 학습하고 있습니다.

코드를 따라가면서 실습을 진행하고 있는데, rmse 값이 선생님과 달라 질문 드립니다.

제가 알기로는 모델링을 하는 과정에서 예측한 값이 달라질 수 있고, 이에 따라 평가지표인 rmse 값이 다를 수 있다...라고 알고 있습니다.

그런데 값의 차이 뿐만이 아니라 baseline과 scaler 적용 결과가 좋은지 나쁜지가 달라 질문드립니다.

예를 들어, 선생님께서 하셨을때는 RandomForestRegressor의 baseline이 rmse값이 가장 좋았고(작았고), scaler를 적용했을 때 rmse가 커져서 scaler 적용은 하지 않는게 좋다~라는 내용의 실습이었는데

제가 했을 때는 baseline의 rmse보다 scaler를 적용했을 때의 rmse가 작아 scaler를 적용하는 것이 좋다..는 결론이 나옵니다.

 

질문을 정리하자면,

  1. 모델링을 하는 과정에서 선생님과 제가 실습한 예측값과 rmse가 다른게 맞는지

  2. 다른게 맞다 해도 scaler 적용여부 등을 바꿀 수 있을 정도로 예측값과 rmse가 달라질 수 있는지

  3. (추가질문)달라지더라도 선생님 실습값 : 4728.xx 제 실습값 6025.174022213681 이정도로 달라질 수 있는지...

  4. (추가질문) 모델링 및 평가(회귀) 24:56에서 수험자는 알 수 없는 영역>y_test로 rmse로 구하시고 결과값이 17909.xx로 나왔는데 여기에서도 charges에 로그변환 한 이후기 떄문에 원래는 np.exp(pred)로 rmse를 구했어야 하는지

일 것 같습니다.

 감사합니다.

 

 

 

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

우와!! 이렇게 긴 질문은 처음 받아봅니다. 열정이 너무 느껴져요 👍👍👍
하나씩 답변드려보겠습니다.

  1. rmse는 달라질 수 있습니다. train과 val 크기가 달라서일 수도 있고, random_states가 다를 수도 있고 등등으로 차이가 있을 수 있습니다.

  2. 영상에서 검용용 데이터를 매우 작게 나눴습니다. 그러다보니 약간의 차이로 인해 검증 결과가 달라질 수도 있을 것 같네요. 전처리 작업으로 인한 영향도 동일하고요!!
    우선 영상을 통해 baseline과 비교하는 방법을 이해 하셨으리라 생각해요!
    그럼 콘스트님 baseline을 기준으로 더 성능이 향상되는 쪽으로 판단하면됩니다.

  3. 차이가 조금 있네요 혹시 제가 완성한 노트북으로도 6000대 일까요? 아니면 콘스트님께서 따로 코딩해서 6000대 일까요? 완성된 노트북을 방금 다시 돌려봤는데 4000중반까지 나오는 것을 확인했어요
    (빈 노트북 말고 완성된 노트북으로도 확인 한번 부탁드리겠습니다.)

  4. 이 부분 영상에서 제가 틀린게 맞아요. np.exp(pred)구하는 것이 맞습니다.
    완성된 노트북은 이미 수정을 해놓은 상태입니다.🙏

답변이 되었을까요? 혹시 또 미심쩍은 부분이나 궁금한 점 있다면 질문주세요 !!!

합격 응원하겠습니다.

image

콘스트님의 프로필 이미지
콘스트
질문자

네 선생님이 완성하신 노트북으로 돌려도 6000대가 나옵니다.

image왼쪽에 강의 화면 띄워놓은 것이고, 오른쪽이 선생님이 주신 노트를 돌려본 내용이예요

xgboostregressor의 경우입니다(제가 질문에 안써놨었네요 ㅠㅠ)

이정도의 차이도 검증용 데이터의 차이라고 볼 수 있을까요?

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

xgboost 성능이 왜이렇게 떨어질까요? 😅 바로 위는 랜덤포레스트죠?
결론은 2~3개 모델 중에 성능 좋은 모델을 제출하면 될 것 같은데

라이트지비엠 모델을 알려드릴게요! lightgbm도 한 번 해보실래요?
영상 제작 당시엔 lightgbm을 지원하지 않았는데 지금은 지원하고 있어요

분류: model = lgb.LGBMClassifier()
회귀: model = lgb.LGBMRegressor()

import lightgbm as lgb

model = lgb.LGBMRegressor()
model.fit(X_tr, y_tr)
y_pred = model.predict(X_val)
콘스트님의 프로필 이미지
콘스트

작성한 질문수

질문하기