Confusion Matrix
- TN(True Negative) : 예측값과 실제값이 모두 0으로 동일할 때, 즉 모델의 예측값이 정답이고 예측 대상이 0일 때
- TP(True Positive) : 예측값과 실제값이 모두 0으로 동일할 때, 즉 모델의 예측값이 정답이고 예측 대상이 0일 때
- FN(False Negative) : 실제값은 1이지만 예측값이 0으로, 모델의 예측값이 오답이고 예측값이 0으로 예측할 때
- FP(False Positive) : 실제값은 0이지만 예측값이 1로, 모델의 예측값이 오답이고 예측값이 1을 예측할 때
분류모델 성능 평가 절차
1. x, y 분리, 2. 학습용, 평가용 데이터 분리방법이 회귀모델 분석방법이랑 같음(회귀모델에서 더 자세하게 설명함)
머신러닝 - LinearRegression
회귀 분석 절차 1) x, y 분리 target 변수 명확히 지정 target을 제외한 변수를 x 데이터프레임으로 선언 y 데이터프레임은 target변수만을 가짐 target = 'Ozone' x = data.drop(target, axis=1) y = data.loc[:, target] 2)
oaho.tistory.com
1. x, y 분리
target = 'ADMIT'
x = data.drop(target, axis=1)
y = data.loc[:,target]
이 데이터에서 'ADMIT' 값은 1 또는 0임 => 분류모델임
2. 학습용, 평가용 데이터 분리
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=1)
y_test는 시리즈 형태임
값을 불러오려면 =>y_test.values
3. 모델링
- 알고리즘:KNeighborsClassifier
1) 불러오기
from sklearn.neighbors import KNeighborsClassifier
2) 선언하기
model = KNeighborsClssifier()
3) 학습하기
model.fit(x_train, y_train)
4) 예측하기
y_pred = model.predict(x_test)
3. 분류성능평가
1)Confusion Matrix
from sklearn.metrics import confusion_matrix
print(counfusion_matrix(y_test, y_pred))
=>이런 형태로 나옴
=> 결과해석 :
TN : 실제값이 0 인데 예측 값이 0 => 76
FP : 실제값이 0 인데 예측 값이 1 => 8
FN : 실제값이 1 인데 예측 값이 0 => 16
TF : 실제값이 1 인데 예측 값이 1 => 50
2)Accuracy: 정확도
from sklearn.metrics import accuracy_score
=>전체 중에서 Psitive와 Negative로 정확히 예측한 (TN+ TP) 비율
Accuracy = (TN + TP) / (TN + FP + FN + TP)
3)Precision: 정밀도
from sklearn.metrics import precision_score
=>
=>[ 0으로 예측한 것중에서 실제 0인 비율, 1으로 예측한 것중에서 실제 1인 비율 ]
- average = None -> 두개 값 나오기
- average = 'weighted' -> 가중치 평균
- average = 'binary' -> 기본값
precision = TP / (FP + TP)
4)Recall:재현율
from sklearn.metrics import recall_score
=> 실제 positive(FN + TP) 중에서 Positive로 예측한 비율
Recall = TP / (FN + TP)
Specificity: 실제 Negative (TN + FP) 중에서Negative로 예측한 비율
5)F1_Score: 정밀도와 재현율의 조화 평균
from sklearn.metrics import f1_score
6)Classification Report
from sklearn.metrics import classification_report
=> 결과
분류모델 평가)
- 0인지 1인지를 예측하는 것
- 실제 값도 0과 1이고 예측 값도 0과 1임
- 하지만 0을 1로 예측하거나 1을 0으로 예측할 수 있음
- 예측 값이 실제 값과 많이 같을 수록 좋은 모델이라 할 수 있음
-> 정확히 예측한 비율로 모델 성능을 평가
'AI > MachineLearning' 카테고리의 다른 글
의사결정트리(Decision Tree) (0) | 2023.02.24 |
---|---|
로지스틱 회귀 개념, 모델링 과정 (0) | 2023.02.23 |
K-Nearest Neighbor 개념, min-max scaling , 모델링 과정 (0) | 2023.02.23 |
선형회귀 - 단순 회귀 / 다중 회귀 (0) | 2023.02.23 |
머신러닝 - LinearRegression(MAE, MSE, RMSE, MAPE, R2 - Score) (0) | 2023.02.20 |