728x90
● Overfitting (오버피팅)
→ 모델이 훈련 데이터에 너무 과하게 적합화되어 훈련 데이터의 잡음이나 노이즈까지 학습하여 실제 데이터에서의 성능이 저하되는 현상
● Underfitting (언더피팅)
→ 모델이 데이터의 다양성과 복잡성을 충분히 반영하지 못하고, 너무 간단한 모델을 사용하여 데이터의 패턴을 제대로 파악하지 못하는 상태
☞ 언더피팅과 오버피팅 사이에서 최적의 균형점을 찾아야 함
● 결정 트리 크기 비교하기
→ 모델이 데이터의 다양성과 복잡성을 충분히 반영하지 못하고, 너무 간단한 모델을 사용하여 데이터의 패턴을 제대로 파악하지 못하는 상태
→ 어떤 크기의 결정 트리가 가장 좋은 성능을 보이는지 확인 후, 최적의 모델 크기를 선택
→ 'scores' dictionary : candidate_max_leaf_nodes에 있는 leaf_size 값을 key로, get_mae 함수를 호출하여 얻은 MAE값을 value로 저장 ( leaf_size에 대한 모델의 성능인 MAE가 저장됨)
※ Dictionary Comprehension
{Key:Value for 요소 in 입력 Sequence [if 조건식]}
candidate_max_leaf_nodes = [5, 25, 50, 100, 250, 500]
scores = {leaf_size: get_mae(leaf_size, train_X, val_X, train_y, val_y) for leaf_size in candidate_max_leaf_nodes}
best_tree_size = min(scores, key=scores.get)
● 모든 데이터를 사용하여 모델 학습시키기
→ 모든 데이터(훈련 데이터와 검증 데이터)를 사용하여 최적의 트리 크기(best_tree_size)를 가진 결정 트리 모델을 다시 학습함
final_model = DecisionTreeRegressor(max_leaf_nodes=best_tree_size, random_state=1) # max_leaf_nodes에 최적의 트리 크기가 설정됨
final_model.fit(X, y) # 모든 데이터 'X'와 그에 해당하는 타겟 값 'y'를 사용하여 최종 모델 학습
'Kaggle > Intro to Machine Learning' 카테고리의 다른 글
6. Random Forests (0) | 2023.08.11 |
---|---|
4. Model Validation (0) | 2023.08.03 |
3. Your First Machine Learning Model (0) | 2023.08.02 |
2. Basic Data Exploration (0) | 2023.08.02 |