2023. 7. 18. 18:55ㆍ카테고리 없음
권철민 강사님 영상 참고.
Classifier는 두 개로 나뉜다. 우선 부모 단에 Estimator가 있고 회귀를 할 때는 Regressor, 분류를 하고싶을 때는 Classifier.
Confusion Matrix.
cross_val_score를 하면 교차검증을 시켜준다.
(cv=5) 하게 되면 교차검증 5번을 해준다.
GridSearchCV : 얘는 잘 모르겠다. param_grid= 라는 것에 여러가지 파라미터를 세팅시킬 수 있다. 'max_depth', 'min_samples_split' : [3,4,5], 'min_samples_leaf' : [1,2,3] 이런 식으로 세팅할 수 있다. 나중에 다시 공부하자.
이런 느낌? 이라고만.
from sklearn.metrics import confusion_matrix
#예측이 Negative인게 405개가 있고, 실제로도 Negative인게 405라는 뜻.
#예측은 Negative인데 실제로는 Positive인 것은 45개.
#왜 오른쪽에 있는 것은 없는 것이니!? 라고 이상함을 느껴야함.
confusion_matrix(y_test, test_pred)
정확도가 높아도 confusion_matrix를 했을 때 True인 것이 하나도 없으면 이상함을 느껴야 한다. 주석 참고.
from sklearn.metrics import accuracy_score, precision_score , recall_score
print("정밀도 : ", precision_score(y_test, test_pred))
print("재현율 : ", recall_score(y_test, test_pred))
만약 정확도가 높아도 정밀도와 재현율이 낮으면 이상함을 느껴야한다.
Accuracy에 대하여.
정확도가 불균형한 레이블에서는 적합하지 않을 수도 있다.
타이타닉 생존자 예측에서 성별이 여성이거나, 나이대가 노약자, 어린이 라고만 하면 이미 좋은 결과를 얻을 수 있을 것.
오차행렬에 대한 설명인데 예전에 모 특강이 있었을 때 진심 이해가 안됐는데 아주 그냥.. 1타 강사이심.
정밀도와 재현율의 뜻. (With GPT)
precision and recall are two evaluation metrics used in machine learning, particularly in classification problems. They are used to measure the quality of the model's prediction with respect to false positives and false negatives. Let's define them:
- Precision (also called Positive Predictive Value): It is the ratio of correctly predicted positive observations to the total predicted positives. It's a measure of a classifiers exactness. A low precision can also indicate a high number of false positives.
Formula: Precision = True Positives / (True Positives + False Positives)
- Recall (also called Sensitivity, Hit Rate, or True Positive Rate): It is the ratio of correctly predicted positive observations to the all observations in actual class. It's a measure of a classifiers completeness. A low recall indicates many false negatives.
Formula: Recall = True Positives / (True Positives + False Negatives)
To illustrate with an example, let's imagine we have a binary classification problem where we need to identify if an email is spam (positive class) or not spam (negative class):
- High precision means that an email classified as spam is indeed spam.
- High recall means that the model classified most spam emails correctly.
Sometimes, there is a trade-off between precision and recall, where improving precision might result in a reduced recall, and vice versa. This depends on the problem at hand and the cost associated with false positives versus false negatives.
In order to balance these two, another metric called F1-score is often used, which is the harmonic mean of precision and recall.
정밀도와 재현율은 기계 학습, 특히 분류 문제에서 사용되는 두 가지 평가 메트릭입니다.
거짓 양성 및 거짓 음성과 관련하여 모델의 예측 품질을 측정하는 데 사용됩니다. 그것들을 정의해 봅시다:
- 정밀도(Postive Predict 값이라고도 함): 전체 예측된 긍정에 대한 올바르게 예측된 긍정 관찰의 비율입니다. 분류기 정확도의 척도입니다. 낮은 정밀도는 많은 수의 오 탐지를 나타낼 수도 있습니다.
공식: 정밀도 = 참양성 / (참양성 + 거짓양성)
- 리콜(민감도, 적중률 또는 참양성률이라고도 함): 실제 클래스의 모든 관측치에 대한 올바르게 예측된 긍정적 관측치의 비율입니다. 분류기 완전성의 척도입니다. 낮은 재현율은 많은 잘못된 음성을 나타냅니다.
공식: 재현율 = 진양성 / (진양성 + 거짓음성)
예를 들어 설명하기 위해 이메일이 스팸인지(포지티브 클래스) 스팸이 아닌지(네거티브 클래스) 식별해야 하는 이진 분류 문제가 있다고 가정해 보겠습니다.
- 높은 정확도는 스팸으로 분류된 이메일이 실제로 스팸임을 의미합니다.
- 높은 재현율은 모델이 대부분의 스팸 이메일을 올바르게 분류했음을 의미합니다.
때로는 정밀도와 재현율 사이에 상충 관계가 있는데, 정밀도를 높이면 재현율이 감소할 수 있고 그 반대의 경우도 마찬가지입니다. 이것은 당면한 문제와 위양성 대 위음성과 관련된 비용에 따라 다릅니다.
이 두 가지의 균형을 맞추기 위해 정밀도와 재현율의 조화 평균인 F1 점수라는 또 다른 메트릭이 자주 사용됩니다.
위의 메트릭스에서 정밀도는 오른쪽 2개(FP, TP)가 분모가 되는 것이고, 재현율은 아랫쪽에 2개(FN, TP)가 분모가 되는 것.
둘다 TP가 분자임. 머신러닝을 할 때 TP는 기본적으로 높아야 한다.
파이썬에서는 precision_score(정밀도), recall_score(재현율)를 각각 지원한다.
정밀도의 경우에는 실제 Negative인데 예측을 Postive로 잘못 판별하는 경우가 비상이고
재현율의 경우에는 실제 Positive인데 예측을 Negative로 판별하는 경우 비상이다.
또, 정밀도와 재현율은 서로 반하는 관계이다. 정밀도가 높아지면 재현율은 낮아지고, 반대인 경우도 마찬가지. 이 것을 Trade off라고 한다.