본문 바로가기

AI

분류 모델링 실습

728x90

이진 분류 모델링 실습 진행

  • 회귀 모델과 다른 부분을 중점으로 학습 진행함
  • 은닉층의 활성화 함수(히든 레이어 활성화 함수)는 렐루
  • 출력층(아웃풋 레이어) 활성화 함수는 이진 분류일때는 시그모이드 사용
  • 모델 학습시 1. 리셋하고 모델 처음부터 학습 시키는 방법 2. 학습 이후 시점부터 더 학습시켜서 줄여가는 방법(이 방법 사용하고 난 후 그래프 그려보면 기존 학습했던곳 마지막 부분부터 그래프가 그려짐)

 

  • Precision과 recall 계산

위 예시 사진에서 고객 이탈이 0 과 1 로 표현될때

  • 모델을 만들었는데 한달동안 예측을 진행했을때
    • 실제 이탈하는 고객 중 어느정도 맞췄는냐 ? -> recal
      • 1 관점에서 recal 10 / 7 + 10
    • 모델이 이사람은 이탈할꺼야 라고 예상했는데 그 중 진짜 이탈하는 고객 -> precision
      • 이 관점에서 precision은 10 / 10 + 3
  • 리콜과 프리시즌 공식 및 의미 외우기
  • 리콜과 프리시즌의 조합 평균은 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

 

 

728x90

'AI' 카테고리의 다른 글

CNN 모델링 실습  (0) 2025.03.05
CNN 모델링  (0) 2025.02.26
분류 모델링  (0) 2025.02.25
회귀 모델링 실습  (0) 2025.02.24
회귀 모델링  (0) 2025.02.22