Machine Learning/[Kaggle Course] ML (+ 딥러닝, 컴퓨터비전)

[Kaggle Courses] What is Model Validation (Evaluating)

WakaraNai 2020. 9. 26. 17:10
728x90
반응형

Evaluating: 내가 만든 모델의 예측 정확성(predictive accuracy) 확인하기, 즉 모델의 퀄리티 요약하기

 

 

 

1. Evaluating의 한 가지 방법: MAE (Mean Absolute Error) 평균절대오차

  • error = actual - predicted
from sklearn.metrics import mean_absolute_error

predicted_data_y = data_model.predict(X)
mean_absolute_error(y, predicted_data_y)

 

 

2. In-Sample Score의 문제점 -> 이 방법 쓰지 말자

  • In-Sample Score: 
    • train data로 predict을 하고 train data의 target data, 즉 목표값과 비교하는 것.
    • 직역하면 "표본 내" 점수. 모델을 만들고 평가하는데 sample을 한 개밖에 사용하지 않음.
    • 해당 모델은 오로지 train data에서만 정확한 것처럼 보이게 됨. 
    • 새로운 데이터에 그 패턴이 유지되지 않는다면 예측에 실패한 모델
  • Validation data (검증 데이터)
    • 그래서 일부 데이터를 삭제한 뒤 나머지 데이터로 모델을 만들어 줌. 이후에 삭제한 데이터를 이용하여 모델의 정확성을 테스트
  • 데이터의 종류
    • X, y 전체 데이터
    • train_X, train_y 훈련데이터. model을 fit할 때 사용
    • val_X, val_y 검증데이터. 정확성 테스트 시 사용

 

 

3. Coding it

1. Split Your Data

from sklearn.model_selection import train_test_split
train_X, val_X, train_y, val_y = train_test_split(X,y,random_state=1)

2. Specify and Fit the Model

data_model = DecisionTreeRegressor(random_state=1)
data_model.fit(train_X, train_y)

3. Make Predictions with Validation data

val_predictions = data_model.predict(val_X)

4. Calculate the Mean Absolute Error in Validation Data

from sklearn.metrics import mean_absolute_error
val_mae = mean_absolute_error(val_y, val_predictions)

 

3-1. Coding it

from sklearn.metrics import mean_absolute_error
from sklearn.tree import DecisionTreeRegressor

def get_mae(max_leaf_nodes, train_X, val_X, train_y, val_y):
	model = DecisionTreeRegressor(max_leaf_nodes = max_leaf_nodes, random_state = 0)
    model.fit(train_X, train_y)
    preds_val = model.predict(val_X)
    mae = mean_absolute_error(val_y, preds_val)
    
    retrun (mae)
728x90
반응형