inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

작업형2 모델 선택 질문 드립니다.

해결된 질문

359

캠사 Camping sapiens

작성한 질문수 6

1

안녕하세요~ 수강생입니다!

작업형2 유형을 풀다보니 문득 궁금한 점이 있어서 질문 올립니다.

 

만일 실전에서 회귀문제 RMSE를 묻는 문제라고 가정한다면....

모델을 아래 코드 예시와 같이 다양하게 할 수 있을텐데요..

#### 랜포를 썼을 경우
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(random_state=2023, max_depth=5)
model.fit(X_tr, y_tr)
pred = model.predict(X_val)

from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error

def rmse(y_test, y_pred):
  return np.sqrt(mean_squared_error(y_test, y_pred))

# print('r2_score:', r2_score(y_val, pred))
# print('mean_absolute_error:', mean_absolute_error(y_val, pred))
# print('mean_squared_error:', mean_squared_error(y_val, pred))
# print('rmse:', rmse(y_val, pred))

#### 부스트를 썼을 경우
from xgboost import XGBRegressor
model = XGBRegressor()
model.fit(X_tr,y_tr)
pred=model.predict(X_val)

from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error

def rmse(y_test, y_pred):
  return np.sqrt(mean_squared_error(y_test, y_pred))

# print('r2_score:', r2_score(y_val, pred))
# print('mean_absolute_error:', mean_absolute_error(y_val, pred))
# print('mean_squared_error:', mean_squared_error(y_val, pred))
# print('rmse:', rmse(y_val, pred)

 

예를들어 위 예시 코드 중에 랜포가 부스트보다 성능이 좋았다면,

최종 제출해야 하는 것은 아래의 코드처럼 1) 랜포나 부스트 둘중에 성능이 좋은 것을 선택, 2) 각 모델에서 하이퍼파라미터 튜닝을 해본 후에 질문의 RMSE가 성능이 제일 잘 나온 것(하이퍼파라미터 값 고정)으로 쭉 뒤에 코딩하고 제출하면 되는 건가요?

결국 1)번과 2)번의 불필요한 모델이나 평가방법은 주석 처리하거나 삭제처리

문제의 RMSE 성능을 봐야하는데 RMSE 코드를 잘모를 경우를 대비하여 sklearn.metrics에 질문의 RMSE 외에 r2_score, mean_absolute_error, mean_squared_error 값들을 한번 보는 용도인거죠?

 

#### 랜포를 썼을 경우
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(random_state=2023, max_depth=5)
model.fit(X_tr, y_tr)
pred = model.predict(X_val)

from sklearn.metrics import mean_squared_error

def rmse(y_test, y_pred):
  return np.sqrt(mean_squared_error(y_test, y_pred))

# print('rmse:', rmse(y_val, pred))

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

답변 1

1

퇴근후딴짓

네 맞습니다 성능을 비교해서 성능이 높은 모델의 결과를 제출하면 됩니다.

그리고 RMSE평가지표를 만들지 못할 경우 다른 메트릭으로라도 비교하는 것이 좋아요!

만약 RMSE를 안다면 다른 평가지표는 비교할 필요 없습니다.

0

캠사 Camping sapiens

선생님~ 답변 감사드립니다.

 

추가로 MSE를 활용한 RSME의 경우에 함수 파라미터 부분이 좀 헷갈리는데요.

아래와 같이 파라미터 y_test, y_pred를 넣고 리턴하는 함수를 만들었는데 y_true, y_pred 같이 다른 값을 넣어도 상관없는지..

 

# 평가
import numpy as np
from sklearn.metrics import mean_squared_error

def rmse(y_test, y_pred): #RMSE
    return np.sqrt(mean_squared_error(y_test, y_pred))

 

이후에 아래와 같이 train_test_split 후에 검증하는 파라미터 값이 y_val, pred로 달라도 상관이 없는건가요?

 

#랜덤포레스트
from sklearn.ensemble import RandomForestRegressor

regressor = RandomForestRegressor()
model.fit(X_tr,y_tr)
pred=model.predict(X_val)

print("rmse: ",rmse(y_val, pred))

 

1

퇴근후딴짓

네 함수에서 파라미터는 함수 내에서 사용하는 변수로

입력값이 2개만 맞으면 됩니다.

 

변수명은 다를 수 있습니다. 예를들면 변수가 아니라 리스트를 직접 넣어도 됩니다.

rmse([2,3,4], [3,4,4]) 와 같이요!

작업형2 모의문제1 (30강)

0

18

1

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

0

21

1

수강 계획과 관련해 문의 드립니다.

0

19

1

작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?

0

45

2

작업형 1 -연습문제 4-6

0

32

2

작업형 1 유형 부분

0

40

2

작업형 1 (삭제예정, 구 버전)

0

50

2

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

0

35

1

2유형 레이블 인코딩 VS 원핫 인코딩

0

36

3

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

0

38

1

인덱스 슬라이싱

0

35

2

질문 드립니다.

0

49

2

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

0

46

2

수강 연장 문의

0

63

2

강의자료 일괄 다운로드

0

58

2

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

0

47

2

list 문제 질문드립니다~

0

38

2

빅분기 실기 12회 재도전

0

62

2

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

0

49

2

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

0

45

2

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

0

52

2

질문이요

0

57

2

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

0

60

2

문제 3-2 질문드립니다

0

47

2