데이터사이언스 기록기📚

[혼공 10기/혼공 머신러닝+딥러닝] 3주차_Ch.4 다양한 분류 알고리즘 본문

대외활동/혼공10기 - 머신러닝, 딥러닝

[혼공 10기/혼공 머신러닝+딥러닝] 3주차_Ch.4 다양한 분류 알고리즘

syunze 2023. 7. 23. 22:36

📌 Ch4. 다양한 분류 알고리즘

🖊️ Ch.4-1) 로지스틱 회귀

✔️럭키백의 확률 실습

1) 데이터 불러오기 및 train, test 나누

  • unique() : 열에서 고유한 값 추출하기

 

2)  데이터 전처리

  • 표준화 전처리하기

 

3) K-최근접 이웃 분류기의 확률 예측

  • 다중분류 클래스 속성 저장 및 확인

  • predict_proba() : 클래스별 확률값 반환(출력순서는 classes_속성 순서와 동일)

 

✔️로지스틱 회귀 

- 로지스틱 회귀 : 선형 방정식을 학습하는 분류 모델 

  • 시그모이드 함수를 이용하여 0~1까지의 값을 확률로 표현할 수 있다.
  • 이진 분류의 경우) 시그모이드 출력 0.5 보다 작은 경우 → 0, 이외의 경우 → 1

 

✔️로지스틱 회귀 이중 분류 실습

1) 데이터 전처리 및 학습

 

2) 예측 및 예측 확률 출력

 

3) 로지스틱 회귀 파악하기

  • coef_, intercept_ : 회귀 계수
  • decision_function() : z값 계산
  • expit() : z를 시그모이드 함수에 적용하여 계산

 

✔️로지스틱 회귀 다중 분류 실습

1) 로지스틱 회귀 학습

  • C : 규제를 제어하는 변수로 선형회귀의 alpha와 동일. 작을수록 규제 커짐

 

2) 예측 및 예측 확률 출력

 

3) 다중 분류의 로지스틱 회귀 방정식

  • 다중 분류는 클래스마다 z값을 하나씩 계산
  • 다중 분류는 소프트맥스 함수 이용 ( 소프트맥스 : 여러 개의 선형 방정식 출력값을 0~1 사이로 압축 → 전체 합이 1이되도록 함)

 

✔️문제 2번

Q) 로지스틱 회귀가 이진분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?

A) 시그모이드 함수

- z값을 구한 후 시그모이드 함수(1/1+e**-z)로 변환하면 0~1사이의 값으로 나타낼 수 있다. 0~1까지의 값을 0~100%로 변환하여 클래스의 확률을 나타낼 수 있다.

- 다중분류에서 사용하는 함수는 소프트맥스이다.

 


🖊️ Ch.4-2) 확률적 경사 하강법

✔️확률적 경사 하강법

- 점진적 학습(훈련한 모델 + 새로운 데이터 조금씩 더 훈련) 알고리즘

- 정의 : 훈련 세트에서 랜덤하게 하나의 샘플을 고르는 것 → 반복 전체 샘플을 모두 이용하여 경사 내려감

  • 에포크(epoch) : 훈련 세트를 한 번 모두 반복하는 과정
  • 미니배치(minibatch) : 여러 개의 샘플을 선정한 것
  • 배치(batch) : 전체 샘플

 

✔️손실 함수(비용함수 :cost function)

- 정의 : 문제에서 머신러닝 알고리즘이 얼마나 엉터리인지 측정하는 기준

- 특징

  • 손실함수는 미분 가능해야 함!
  • 이진 분류 손실함수 : 로지스틱 손실 함수, 이진 크로스엔트로피 손실 함수
  • 다중 분류 손실함수 : 크로스엔트로피 손실함수

 

✔️확률적 경사 하강법 실습

1) 데이터 로드, 분리 및 전처리

 

2) 확률적 경사 하강법

  • partial_fit() : 모델을 이어서 훈련할 때 사용, 호출 시 1에포크씩 이어서 훈련할 수 있음

 

3) 적합한 에포크 찾기 

 

4) 적합한 에포크로 다시 훈련

  • SGDClassifier 특징 : 일정 에퍼크 동안 성능이 향상되지 않으면 자동으로 멈춤 

 

728x90
Comments