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

hankilzoa님의 프로필 이미지

작성한 질문수

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

기출(작업형2) 한 가지 방법으로 풀기 🆕 updated 2024.6

회귀(기출5회)

해결된 질문

24.06.19 08:15 작성

·

99

0

  • 안녕하세요 RMSE나 어렵다면 MSE를 사용하면 된다고 하셨는데요

 

  • from sklearn.metrics import mean_squared_error

  • def rmse(y_true,y_pred) :

 

  • 1. 사이킷 런에서 mse 를 불러왔는데 다음줄에서

  • def rmse를 사용하는 이유가 무엇인지 모르겠습니다

  • 2. 그리고 y_true, y_pred 라는 변수를 트레인_테스트 분리 한적이 없는데 이건 어떤걸까요?

  • mse = mean_squared_error(y_val,pred)

     

이 부분은 다른 한가지 방법으로 푼것과 동일하고 이해가 가는데요

  • return mse **0.5

  • result=rmse(y_val,pred)

  •  

  • 3. 이건 단순 암기?;;의 영역으로 보면될까요? mse로 풀면 된다고 하셨는데 결과는 rmse로 출력하고 있는 것 같고 rmse/mse가 혼재된상태로 코드를 작성하는거같아서요

  • print('/n rmse:',result)

  1. mse방식으로 통일된 형태(조금더 쉽게,,)로 평가하는 방법이 있을지 궁금합니다

감사합니다

 

답변 1

0

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

2024. 06. 19. 09:32

rmse를 사이킷런에서 지원하지 않아 mse를 불러와서 처리하고 있어요

꼭 함수를 만들지 않아도 괜찮습니다.

mse를 구한다음 제곱하거나

squared=False 설정을 사용해 주세요 💪

from sklearn.metrics import mean_squared_error
import numpy as np

# 예제 데이터
y_true = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])

# MSE 계산
mse = mean_squared_error(y_true, y_pred)
print(f'MSE: {mse}')

# RMSE 방법1 (squared=False)
rmse = mean_squared_error(y_true, y_pred, squared=False)
print(f'RMSE: {rmse}')

# RMSE 방법2
rmse = np.sqrt(mse)
print(f'RMSE(np): {rmse}')

# RMSE 방법3
rmse = mse ** 0.5
print(f'RMSE ** 0.5: {rmse}')
hankilzoa님의 프로필 이미지
hankilzoa
질문자

2024. 06. 19. 21:26

안녕하세요 답변 감사합니다. rmse / mse 나 공식이 섞여서 이해가 잘안가서 그러는데요~ 아래 7번 문제를 기준으로 mse 실제로 구하는 방법 한가지만~알려주실 수 있으실까요?

(mse 산출 > mse ** 0.5 = rmse 여기까진 이해했는데요!)

 

from sklearn.ensemble import RandomForestRegressor

model = RandomForestRegressor()

model.fit(X_tr,y_tr)

pred = model.predict(X_val)

 

7번문제 머신러닝까지 진행한것이고 위 상태에서 점수 확인 및 mse를 구한다고 했을때

 

from sklearn.metrics import mean_squared_error

import numpy as np

mse = mean_squared_error(y_tr,pred)

print(f'MSE:{mse}')

rmse = mse **0.5

이 맞을까요? 실제 문제에 적용을 해봐야하는데 다른 변수가 나오니 이해가 잘안되서요, 7번 문제 기준으로 했습니다. 다시한번 감사드립니다!

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

2024. 06. 20. 04:00

import numpy as np는 필요없어요. 위 예시 데이터를 위한 용도입니다.

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_tr,pred)
print(mse **0.5)