이진 분류 모델링 실습 진행
- 회귀 모델과 다른 부분을 중점으로 학습 진행함
- 은닉층의 활성화 함수(히든 레이어 활성화 함수)는 렐루
- 출력층(아웃풋 레이어) 활성화 함수는 이진 분류일때는 시그모이드 사용
- 모델 학습시 1. 리셋하고 모델 처음부터 학습 시키는 방법 2. 학습 이후 시점부터 더 학습시켜서 줄여가는 방법(이 방법 사용하고 난 후 그래프 그려보면 기존 학습했던곳 마지막 부분부터 그래프가 그려짐)
- Precision과 recall 계산
위 예시 사진에서 고객 이탈이 0 과 1 로 표현될때
- 모델을 만들었는데 한달동안 예측을 진행했을때
- 실제 이탈하는 고객 중 어느정도 맞췄는냐 ? -> recal
- 1 관점에서 recal 10 / 7 + 10
- 모델이 이사람은 이탈할꺼야 라고 예상했는데 그 중 진짜 이탈하는 고객 -> precision
- 이 관점에서 precision은 10 / 10 + 3
- 실제 이탈하는 고객 중 어느정도 맞췄는냐 ? -> recal
- 리콜과 프리시즌 공식 및 의미 외우기
- 리콜과 프리시즌의 조합 평균은 f1 스코어 이다.
실제 예
위와 같이 나왔을 때 두 번째 사진처럼 결과가 나옴 결과를 해석해보면 다음 과 같다.
- accuracy 관점에서 f1-score = 0.78
- 이는 맞춘 비율 / total -> 141+67 / total
- 1관점에서 precision = 0.7
- 67 / 67+29
- 1관점에서 recall -> 0.68
- 67 / 67+31
https://drive.google.com/file/d/1f8aL3lWPPDe8EGrl7Z-mEHhy3mXnNfqM/view?usp=sharing
3-1 이진분류 모델링.ipynb
Colab notebook
drive.google.com
이진 분류 vs 다중 분류 가장 큰 차이점
- 이진 분류나 회귀는 출력층의 노드의 수가 한개
- 다중 분류에서 출력층의 노드의 수는 다중분류 클래스 수많큼임
다중 분류 모델링 실습
- y에 대해 문자열로 정리되어 있는 것들을 인덱스로 정수타입으로 변환하는 것만 신경쓰면됨 (모델링 전까지)
- Cross Entropy : 이 손실 함수는 내부에 SoftMax 연산이 포함(출력층 활성화함수 지정 안함)
- 이후 1. 예측한 후 2. softMax로 변환 3. 결과값이 각각의 확률값으로 나옴, 가장 확률이 높은 인덱스가 먼지 찾아야함 (argmax()이용)
- 다중 분류 모델의 평가 정리
- ① 예측결과를
- ② nn.Softmax함수로 변환 ==> 확률값
- ③ 그 중 가장 큰 값의 인덱스로 변환 : np.argmax()
https://drive.google.com/file/d/1fNZnytcnmlgpXuefppgw25oApPx3PoGq/view?usp=sharing
3-2 다중분류 모델링_iris.ipynb
Colab notebook
drive.google.com
다른 예제로 한번 더 추가 실습
- MNIST 손글씨 데이터 가지고 실습을 진행해봄
- 0~9 까지 10개로 다중 분류 모델
- datasets.MNIST로 데이터 다운받음
- 이렇게 받음 train ds
- test ds로 반들 수 있고 이 둘은 tensor dataset 임
- 데이터셋 분할
- validation : 학습시, 에포크마다 성능 검증용
- test : 모델 생성 후 최종 검증용
- dataset의 data 속성으로 데이터를 뽑으면 원본데이터가 나옵니다.
- 스케일링 안된 데이터
- 5000, 28, 28 : 3차원 데이터셋
- 그래서 모델링에 사용하려면 두가지 전처리를 다시 해줘야 함
- 스케일링 : 원본데이터가 0~255 까지 숫자이므로, 255로 나눠주면 됨
- 4차원 변환 : 5000, 1, 28, 28
- 위 3차원 데이터셋을 아래 4차원 변환해주는 코드를 진행
3차원 데이터셋 --> 4차원 데이터셋
- 이미지 한장의 구조는, [채널, 세로픽셀 수, 가로픽셀 수] 입니다.
- 채널 : 흑백 = 1, 컬러 = 3
- 그러므로 여기서도 동일한 전처리를 수행합니다.
https://drive.google.com/file/d/1Tu49w_pztN-ikQgHSvfOvHwVelpFHuFC/view?usp=sharing
3-3 다중분류 모델링_mnist.ipynb
Colab notebook
drive.google.com
요약
추가 실습
https://drive.google.com/file/d/19HxpdiPpo01nXsLvhNC6733gsuezAF1i/view?usp=sharing
3-4 이진분류 모델링_실습.ipynb
Colab notebook
drive.google.com
https://drive.google.com/file/d/1v_a_N6i3WAex6bMN7Kxwu0C05J1b_wgn/view?usp=sharing
3-5 다중분류 모델링_실습.ipynb
Colab notebook
drive.google.com