AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

머신러닝/머신러닝: 입문 개념

모델 성능 검증

qordnswnd123 2024. 12. 2. 16:08

1. 학습 데이터의 일부를 분할하여 검증하는 방법

 

모델의 성능을 평가할 때에는, 이미 정답(target)이 존재하는 학습 데이터 내에서 일부를 분리시켜 검증데이터로 활용하는 방법을 사용합니다.

보통은 전체 학습 데이터에서 20%~30%를 검증데이터로 분리하여 사용합니다.

 


2.Scikit-learn을 이용한 모델 성능 평가

 

2.1 데이터 불러오기

import pandas as pd
import copy
train_diabets = pd.read_csv('train_diabets.csv')

display(train_diabets.head())
display("train_diabets 데이터셋 크기:", len(train_diabets) )

 

2.2 검증데이터 분할 : 검증 데이터는 전체 데이터 중 25% 사용

from sklearn.model_selection import train_test_split

# 특성과 타겟 변수 분리
train_x = train_diabets.drop(['ID','Outcome'], axis=1)
train_y = train_diabets['Outcome']

# 학습 데이터와 검증 데이터로 분리
X_train, X_val, y_train, y_val = train_test_split(train_x, train_y, test_size=0.25, random_state=42)

# 분리된 데이터의 크기 확인

display("분할 후의 학습 데이터셋 크기:", X_train.shape )
display("분할 후의 검증 데이터셋 크기:", X_val.shape )

 

2.3 분할한 검증 데이터 제외하고 학습

from sklearn.tree import DecisionTreeClassifier

# Decision Tree 모델 생성 및 학습
clf_diabets = DecisionTreeClassifier(random_state=42)
clf_diabets.fit(X_train, y_train)

# 모델을 사용하여 검증 데이터에 대한 예측 수행
y_pred = clf_diabets.predict(X_val)
print("첫 10개의 예측 데이터 :", y_pred[:10])
첫 10개의 예측 데이터 : [0 0 1 0 0 1 0 0 1 1]

 

2.4 분할한 검증 데이터셋 대상 성능 검증

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score

accuracy_diabets_DT =  accuracy_score(y_val, y_pred)
precision_diabets_DT =  precision_score(y_val, y_pred)
recall_diabets_DT =  recall_score(y_val, y_pred)
f1_score_diabets_DT =  f1_score(y_val, y_pred)

display(f"Accuracy:{accuracy_diabets_DT}")
display(f"precision:{precision_diabets_DT}")
display(f"recall: {recall_diabets_DT}")
display(f"f1_score: {f1_score_diabets_DT}")

 

'머신러닝 > 머신러닝: 입문 개념' 카테고리의 다른 글

로그 변환(Log transform)  (0) 2024.12.05
데이터 표준화(StandardScaler)  (0) 2024.12.04
모델학습과 예측  (0) 2024.12.01
분류(Classification)  (3) 2024.11.30
회귀분석  (0) 2024.11.29