반응형
스터디
스터디 범위
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 이며 값이 작을 수록 규제가 강해짐
- solver 매개변수: 사용할 알고리즘 선택 가능. 기본값은 '1bfgs'.
- 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까지 돌려본 후 최적인 구간을 찾는 과정.
참고
- [Github] 예제 소스: https://github.com/rickiepark/hg-mldl
- [Google Colab] 예제 소스: https://colab.research.google.com/github/rickiepark/hg-mldl
- Q&A: 박해선 저자님의 github: https://groups.google.com/g/ml-dl-book-qna?pli=
- 유튜브 강의: 👉전체 강의 목록: https://www.youtube.com/playlist?list=PLVsNizTWUw7HpqmdphX9hgyWl15nobgQX
반응형
'Project Process > Study Report' 카테고리의 다른 글
[Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 05 트리 알고리즘(4주차) (0) | 2023.07.30 |
---|---|
[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(7월 3주차) (0) | 2023.07.25 |
[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(7월 2주차) (0) | 2023.07.16 |
[Study] 혼공학습단 10기: 혼자 공부하는 머신러닝+딥러닝(박해선) - Chapter 03 회귀 알고리즘과 모델 규제(2주차) (0) | 2023.07.14 |
[영어] 리얼클래스 학습 일기: 일상 회화 표현 정리(7월 1주차) (0) | 2023.07.10 |