Day91

김재현·2023년 10월 5일

JUPYTER/DL/ML

목록 보기
58/73

seaborn의 산점도행렬

  1. scatterplot 군집 분류에 사용
    파라미터의 hue 가능. 즉, 집단별로 나눌 수 있음. 단, 그래프 자체적으로 추세선은 지원하지 않으므로 lineplot을 더해야함.

  2. regplot 회귀에서 사용
    추세선은 지원하지만 hue는 지원하지 않음.

09-분류-iris

#05. 분류 성능 평가

사이킷런 패키지는 metrics 모듈에 다양한 선능 평가 방법을 제공.

이때 주의할 점은 이진 분류 여부를 잘 확인해 각각의 평가 지표를 적절하게 적용.

로지스틱, 소프트맥스의 차이는 2진 분류

아래는 2진분류가 아니라도 범용적으로 사용이 가능

  • 오차행렬(혼동행렬) : 'confusion_matrix(관측치, 예측치)'
  • 정확도 : 'accuracy_score(관측치, 예측치)'

아래는 왠만해서는 binary 형태로 사용

  • 정밀도 : 'precision_score(관측치, 예측치)'
  • 재현율 : 'recall_score(관측치, 예측치)'
  • F1 스코어 : 'f1_score(관측치, 예측치)'
  • ROC 곡선 : 'roc_curve(관측치, 예측치)'
  • 분류 리포트 : 'classification_report(관측치, 예측치)'
  • AUC : 'roc_auc_score(관측치, 예측치)'

불균형한 레이블 클래스를 가지는 이진 분류 모델에서 정확도만 가지고 판단할 경우 신뢰도가 떨어질 수 있다. 이럴 경우 정밀도 혹은 재현율을 사용하는 것이 더욱 바람직.

  • 정밀도 : 실제 음성인 데이터를 양성으로 판단하는 것이 더 큰 문제인 경우 사용.(ex: 스팸 메일 분류 모델)
  • 재현율 : 실제 양성인 데이터를 음성으로 판단하는 것이 더 큰 문제인 경우 사용.(ex: 암 판단 모델)

정밀도, 재현율, F 값

이 값들은 이진분류에서 사용을 권장. 그러므로 여기서는 실행 시 에러가 발생

Target is multiclass but average='binary'

이진분류가 아닌 경우 다중분류에서는 average를 사용해 'macro', 'micro', 'weighted' 방식을 설정 사용 가능


10-분류-K-Fold교차검증.ipynb

분류 : K-폴드 교차 검증

#01. 개요

01. 머신러닝을 구현하는 과정에서의 대표적 문제점.

  1. 과대적합(Overfitting) : 학습 데이터를 과하게 학습하는 것
  2. 과소적합(Underfitting) : 학습 데이터를 충분히 학습하지 못하는 것
  3. Sample loss 문제 : 학습 데이터가 적은 경우 발생하는 문제
    • 데이터를 Train용과 Test용으로 나누는 과정에서 Train 데이터가 부족해지기 때문에 발생

위와 같은 상황에서 학습이 발생시키는 에러를 과소 추정하지 않으면서 데이터의 손실을 최소화하는 방법으로 k-폴드 교차 검증이 존재.

핵심은 데이터를 늘려야한다는 것

02. K-폴드 교차 검증 예시

'k'가 5인 경우에 대한 예시

img

Fold가 5로 이루어져 있다.

하나의 데이터 셋(전체 데이터 셋)을 5등분하여 각 Fold마다 한 번씩 Test 데이터가 되도록 train_split을 개별 수행.

그 결과 총 5번의 학습이 가능해지며 그 학습 결과에 대한 평균치(혹은 최대치)를 구한다.

0개의 댓글