모델 평가 단계의 간단한 코드 입니다.
먼저 데이터로 모델을 학습합니다. 모델은 이진 분류 모델, 다중 분류 모델, 회귀 모델 순입니다.
from sklearn.tree import DecisionTreeClassifier as DTC
from sklearn.tree import DecisionTreeRegressor as DTR
model1 = DTC(max_depth = 10)
model2 = DTC(max_depth = 10)
model3 = DTR(max_depth = 10)
#파라미터 설정 다른 방법
#parameter = {"max_depth": 10}
#model = DTC(**parameter)
model1.fit(X1_train, y1_train)
model2.fit(X2_train, y2_train)
model3.fit(X3_train, y3_train)
# predict
y1_pred = model1.predict(X1_test)
y2_pred = model2.predict(X2_test)
y3_pred = model3.predict(X3_test)
# predict_proba
y1_prob = model1.predict_proba(X1_test)
y2_prob = model2.predict_proba(X2_test)
predict : 라벨을 예측하는 메소드
predict_proba : 특정 클래스에 속할 확률 계산. (i행 j열 → i번째 샘플이 j클래스에 속할 확률)
from sklearn.metrics import *
# 정확도, 정밀도, 재현율, F1 스코어
acc = accuracy_score(y1_test, y1_pred)
pre = precision_score(y1_test, y1_pred)
rec = recall_score(y1_test, y1_pred)
f1 = f1_score(y1_test, y1_pred)
print(acc, pre, rec, f1)
# 매크로 F1스코어, 가중 F1스코어
# f1_score(y2_test, y2_pred) -> ERROR ..
macro_f1 = f1_score(y2_test, y2_pred, average = 'macro')
weighted_f1 = f1_score(y2_test, y2_pred, average = 'weighted')
print(macro_f1, weighted_f1)
정확도, 정밀도, 재현율, F1스코어를 계산합니다.
다중 분류의 경우 긍정 클래스를 지정하기 어려워,
각 클래스에 대한 지표의 산술평균(매크로 지표) 혹은 가중평균(가중 지표)을 사용합니다.
mae = mean_absolute_error(y3_pred, y3_test)
mse = mean_squared_error(y3_pred, y3_test)
rmse = mse ** 0.5
print(mae, mse, rmse)
MAE, MSE, RMSE를 계산합니다.
참고 서적 : GIL's LAB, 「파이썬을 활용한 머신러닝 자동화 시스템 구축」, 위키북스(2022)
[ML/python] 선형모델 (multiple linear regression, Lasso, Ridge, logistic) (0) | 2025.02.12 |
---|---|
[ML/python] 머신러닝 파이프라인 사용하기 (0) | 2025.02.12 |
[ML] 사이킷런 지도 학습 클래스 정리 (0) | 2025.02.12 |
[ML/python] 필터링 기반 특징 선택 (Feature selection, Filter Method, SelectKBest) (0) | 2025.02.10 |
[ML/python] 불균형데이터 오버샘플링, 언더샘플링 (SMOTE, NearMiss) (0) | 2025.02.09 |