inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

회귀분석 관련하여 질문드립니다.

해결된 질문

202

지윤

작성한 질문수 1

0

RMSE, RMSLE, MAPE 등 마지막으로 정리해서 외워두려고 하는데요

최대한 넘파이 안쓰고 싸이킷런 안에 있는거로 정리하려고 합니다.

RMSLE 경우에는 혹시 싸이킷런으로 정리 가능한 코드가 있을까요? ㅜㅜ

 

import numpy as np

from sklearn.metrics import mean_absolute_error, mean_squared_error, mean_absolute_percentage_error

 

# RMSE

def rmse(y_val, pred):

return np.sqrt(mean_squared_error(y_val, pred))

혹은

def rmse(y_val, y_pred):

return mean_squared_error(y_val, y_pred)**0.5

 

# RMSLE

def rmsle(y_val, pred):

return np.sqrt(np.mean(np.power(np.log1p(y_test) - np.log1p(y_pred), 2)))

 

# MAPE

def mape(y_val, pred):

return np.mean(np.abs((y_test - y_pred) / y_test)) * 100
혹은

def mape(y_val, pred):

return mean_absolute_percentage_error(y_val, pred)

 

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 4

1

지윤

넵 감사합니다 낼 잘보고 오겠습니다!

0

퇴근후딴짓

지윤님, 제가 알려드린 내용중 수정하겠습니다.

rmsle는 msle**0.5로 구해주세요.

시험환경 msle에는 squared 설정이 없네요

0

퇴근후딴짓

 

mse 에서 squared=False를 사용하면 rmse (또는 mse**0.5)

from sklearn.metrics import mean_squared_error

# MSE 계산
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mse = mean_squared_error(y_true, y_pred)
print('MSE:', mse) 

# RMSE 계산 (squared=False 옵션 사용)
rmse = mean_squared_error(y_true, y_pred, squared=False)
print('RMSE:', rmse) 

msle에서 squared=False를 사용하면 rmsle (또는 msle**0.5)

from sklearn.metrics import mean_squared_log_error

# MSLE 계산
y_true = [3, 5, 2.5, 7]
y_pred = [2.5, 5, 4, 8]
msle = mean_squared_log_error(y_true, y_pred)
print('MSLE:', msle) 

# RMSLE 계산 (squared=False 옵션 사용)
rmsle = mean_squared_log_error(y_true, y_pred, squared=False)
print('RMSLE:', rmsle) 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

지윤님께서 질문하신 RMSLE 계산에 관해 mean_squared_log_error 함수를 이용한 RMSLE 계산 방법에 대한 질문이 있으신 것 같습니다. sklearn에서 RMSLE를 직접적으로 계산하는 함수는 제공하지 않지만, mean_squared_log_error를 사용하여 간접적으로 RMSLE를 계산할 수 있습니다.

RMSLE 계산에 numpy를 최대한 배제하려는 경우, 싸이킷런의 mean_squared_log_error 함수 사용 후 SQRT(루트)를 적용하는 방법은 다음과 같습니다:

from sklearn.metrics import mean_squared_log_error
from math import sqrt

def rmsle_sklearn(y_true, y_pred):
    return sqrt(mean_squared_log_error(y_true, y_pred))

이 방법을 사용하면 numpy 없이 RMSLE 값을 계산할 수 있습니다. 여기서, mean_squared_log_error 함수는 실제 값과 예측 값의 로그 차이의 제곱에 대한 평균을 계산하므로, 이의 제곱근을 취하는 것이 RMSLE 값에 해당합니다.

다만, 위에서 선언된 RMSLE 계산 코드를 사용하려면 sqrt 함수를 위해 math 모듈을 import 해야 합니다.

질문하신 내용에 대한 정확한 RMSLE 계산 코드가 제공되는 정보는 확인되지 않았으며, 제가 제시한 방법으로 RMSLE 계산 기능을 sklearn 내에서 구현할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

질문 드립니다.

0

37

2

강의 내용 관련 질문드립니다~

0

34

2

수강 연장 문의

0

31

1

강의자료 일괄 다운로드

0

41

2

수강기간 연장 문의드립니다

0

28

1

list 문제 질문드립니다~

0

28

2

빅분기 실기 12회 재도전

0

39

1

강의 기간 연장 가능여부 검토 요청건

0

30

1

수강기간 연장 문의 드립니다

0

36

2

수강기간 연장 문의드립니다

0

47

2

질문이요

0

51

2

수강기간 연장 문의드립니다.

0

48

2

문제 3-2 질문드립니다

0

43

2

수강기간 연장 문의 드립니다.

0

58

2

변수, 칼럼 , df 구분

0

47

2

수강기간 연장 문의드립니다.

0

49

2

수강기간 연장 문의

0

46

2

수강기간 연장 문의드립니다.

0

40

2

수강기한 연장 문의

0

75

2

수강기간 연장 문의드립니다

0

57

2

결정트리에서 적절한 깊이 선택 후 시각화 과정에서 학습 데이터만 사용하는 이유

0

44

2

수강기간 연장 문의드립니다.

0

70

2

수강연장 문의

0

76

2

수강연장문의

0

53

2