해결된 질문
작성
·
104
·
수정됨
0
안녕하세요. 작업형 2 회귀모델 사용하고 평가지표로 모델 평가하는 부분에서 질문이 있어서 문의합니다
넘파이 없이 해보려고 아래처럼 간단하게 만들어봤는데요.
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
# 릿지 모델
from sklearn.linear_model import Ridge
rd = Ridge(random_state=100)
rd.fit(X_tr,y_tr)
pred_rd = rd.predict(X_val)
mse = mean_squared_error(y_val,pred_rd) # rmse 간단 사용을 위해 우선 mse()를 변수 할당
rmse = mse ** 0.5 # 그런 다음 rmse 처리 방식에 맞는 변수 생성
print("r2:",r2_score(y_val,pred_rd))
print("mae:",mean_absolute_error(y_val,pred_rd))
print("mse:",mean_squared_error(y_val,pred_rd))
print("rmse:",rmse)
r2: 0.06396849293045404
mae: 75.39756630227993
mse: 62725.96352602316
rmse: 250.4515193126669
# 라쏘 모델
from sklearn.linear_model import Lasso
ls = Lasso(random_state=100)
rd.fit(X_tr,y_tr)
pred_ls = rd.predict(X_val)
mse = mean_squared_error(y_val,pred_ls)
rmse = mse ** 0.5
print("r2:",r2_score(y_val,pred_ls))
print("mae:",mean_absolute_error(y_val,pred_ls))
print("mse:",mean_squared_error(y_val,pred_ls))
print("rmse:",rmse)
r2: 0.06396849293045404
mae: 75.39756630227993
mse: 62725.96352602316
rmse: 250.4515193126669
선형회귀,XGB,랜덤포레스트 등은 결과값이 모델별로 각각 다르게 나왔는데
(랜덤포레스트의 결정계수 값이 제일 높아서 실습하면서 저도 랜덤포레스트를 적용했습니다)
릿지랑 라쏘 이 2가지 모델은 위에서 처럼 결과값 출력이 완전 동일하게 나와서.....
(rmse는 선형회귀를 제외한 나머지 4가지 전부 동일 값이 출력 되었습니다...이건 뭘 잘못한걸까요..?)
검증데이터 예측값 계산 변수 다 할당했고, 할당한 예측 변수를 각 평가 모델에 대입했는데... 왜 이런 결과가 나오는지, 뭔가 잘못한 부분이 있으니 값이 같게 나오는거 같은데... 어느 부분이 잘못 되었는지 알려주시면 감사하겠습니다.
아... ㅎㅎㅎ 왜 아까는 안 보였을까요... 감사합니다.
rd.fit(X_tr,y_tr)
pred_ls = rd.predict(X_val)
가 아니고
ls.fit(X_tr,y_tr)
pred_ls = ls.predict(X_val) 로 했어야 하는데....