Project Process/Study Report

[Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 04 다양한 분류 알고리즘(3주차)

DrawingProcess 2023. 7. 20. 08:30
반응형

다양한 분류 알고리즘

스터디

스터디 범위

Chapter 04 다양한 분류 알고리즘

  • 04-1 로지스틱 회귀 ▶️로지스틱 회귀 알고리즘을 배우고 이진 분류 문제에서 클래스 확률 예측하기
  • 04-2 확률적 경사 하강법 ▶️경사 하강법 알고리즘을 이해하고 대량의 데이터에서 분류 모델을 훈련하기

스터디 내용

04-1 로지스틱 회귀 ▶️로지스틱 회귀 알고리즘을 배우고 이진 분류 문제에서 클래스 확률 예측하기

K-최근접 이웃: 이웃한 샘플의 클래스 비율로 확률 기반 분류 모델이지만, 근접한 이웃 수(K)에 연관된 이산적인 확률을 출력하는 단점.

로지스틱 회귀: 선형 방정식을 사용한 분류 알고리즘. 선형 회귀와 달리 시그모이드 함수나 소프트맥스 함수를 사용하여 연속적인 클래스 확률을 출력가능.

  • 이진 분류: 시그모이드(sigmoid) 함수, 선형 방정식의 출력을 0과 1 사이의 값으로 압축하며 이진 분류를 위해 사용함.
  • 다중 분류: 소프트맥스(softmax) 함수, 다중 분류에서 여러 선형 방정식의 출력 결과를 정규화하여 합이 1이 되도록 만듦.

scikit-learn

  • LogisticRegression: 로지스틱 회귀를 위한 클래스
    • solver 매개변수: 사용할 알고리즘 선택 가능. 기본값은 '1bfgs'.
      • 사이킷런 0.17에 추가된 'sag'는 확률적 평균 경사 하강법 알고리즘으로 특성 샘플 수가 많을  성능 빠름 
      • 사이 킷런 0.19 버전 에는 'sag' 개선 버전 'saga'  추가됨
    • penalty 매개변수: L2 규제 ( 릿지 방식 ) 와 L1 규제 ( 라쏘 방식 ) 를 선택가능. 기본값은 L2 규제를 의미 하는 '12'.
    • C 매개변수: 규제 의 강도를 제어. 기본값은 1.0 이며 값이 작을 수록 규제가 강해짐
  • predict_proba: 예측 확률을 반환함
    • 이진 분류의 경우, 샘플 마다 음성 클래스 와 양성 클래스에 대한 확률 을 반환함
    • 다중 분류의 경우, 샘플 마다 모든 클래스에 대한 확률을 반환함
  • decision_function: 모델이 학습 한 선형 방정식의 출력을 반환함
    • 이진 분류의 경우, 양성 클래스의 확률 이 반환함. 0 보다 크면 양성 클래스 작거나 같으면 음성 클래스 로 예측함.
    • 다중 분류의 경우, 각 클래스 마다 선형 방정식을 계산하여 가장 큰 값의 클래스가 예측 클래스.

04-2 확률적 경사 하강법 ▶️경사 하강법 알고리즘을 이해하고 대량의 데이터에서 분류 모델을 훈련하기

확률적 경사 하강법(Stocastic Gradient Descent, 이하 SDG): 훈련세트에서 샘플을 꺼내 손실함수의 경사를 따라 최적의 모델을 찾는 알고리즘.

  • SDG: 한번에 훈련에 샘플을 하나씩 사용하여 훈련함
  • Mini-batch SDG: 한번에 훈련에 샘플을 몇개씩 사용하여 훈련함
  • batch SDG: 한번에 훈련에 전체 샘플을 사용하여 훈련함
  • Epoch: 위의 어떤 방식을 사용하던 전체 샘플을 모두 사용하는 한 번 반복을 의미함

손실 함수(loss function): SDG로 최적화할 대상.

  • 이진 분류: 로지스틱 회귀(logistic regression) 또는 이진 크로스엔트로피(binary cross entropy) 손실 함수 사용
  • 다중 분류: 크로스엔트로피(cross entropy) 손실 함수 사용
  • 회귀: 평균 제곱 오차(Mean Square Error) 손실 함수 사용
  • 추가로, 비용 함수(cost function)이란? 훈련세트에 대한 모든 샘플에 대한 손실함수의 합

scikit-learn

  • SGDClassifier: 확률적 경사 하강법을 사용한 분류 모델.
    • loss 매개변수: 확률적 경사 하강법으로 최적화할 손실 함수를 지정. 기본값은 서포트 벡터 머신을 위한 ‘hinge’ 손실 함수이며, 로지스틱 회귀를 위해서는 ‘log’로 지정.
    • penalty 매개변수: 규제의 종류를 지정. 기본값은 L2 규제를 위한 ‘l2’. 규제 강도는
    • alpha 매개변수: 규제 강도 지정. 기본값은 0.0001.
    • max_iter 매개변수: 에포크 횟수를 지정. 기본값은 1000.
    • tol 매개변수: 반복을 멈출 조건. n_iter_no_change 매개변수에서 지정한 에포크 동안 손실이 tol 만큼 줄어들지 않으면 알고리즘이 중단됨. tol 매개변수의 기본값은 0.001이고 n_iter_no_change 매개변수의 기본값은 5.
  • SGDRegressor: 확률적 경사 하강법을 사용한 회귀 모델.
    • loss 매개변수: 손실 함수를 지정. 기본값은 제곱 오차를 나타내는 ‘squared_loss’.
    • 앞의 SGDClassifier에서 설명한 매개변수는 모두 SGDRegressor에서 동일하게 사용됨 

미션

기본 미션

Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기

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

정답: 1. 시그모이드(sigmoid) 함수.

시그모이드 함수는 선형 방정식의 출력을 0과 1 사이의 값으로 압축하며 이진 분류를 위해 사용하며, 2개 이상의 클래스를 분류하는 다중 분류에서는 여러 선형 방정식의 출력 결과를 정규화하여 합이 1이 되도록 만드는 소프트맥스(softmax) 함수를 사용합니다.

선택 미션

Ch.04(04-2) 과대적합/과소적합 손코딩 코랩 화면 캡쳐하기

  • partial_fit을 통해 fine tuning 가능하여, Epoch 300까지 돌려본 후 최적인 구간을 찾는 과정.

참고

 

반응형