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
반응형
'Machine Learning > [Kaggle Course] ML (+ 딥러닝, 컴퓨터비전)' 카테고리의 다른 글
Random Forest (0) | 2020.09.28 |
---|---|
[Kaggle Courses] UnderFitting vs OverFitting (0) | 2020.09.27 |
[Kaggle Courses] From Fitting to Prediction (0) | 2020.09.26 |
[Kaggle Courses] Basic Data Exploration - Ex.MelbourneHomePrice (0) | 2020.09.22 |
[Kaggle Courses] How Models Works (0) | 2020.09.22 |