해결된 질문
작성
·
139
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)
mse방식으로 통일된 형태(조금더 쉽게,,)로 평가하는 방법이 있을지 궁금합니다
감사합니다
답변 1
0
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}')
import numpy as np는 필요없어요. 위 예시 데이터를 위한 용도입니다.
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_tr,pred)
print(mse **0.5)
안녕하세요 답변 감사합니다. 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번 문제 기준으로 했습니다. 다시한번 감사드립니다!