통계, ML 방법론
[혼공머] 4장 다양한 분류 알고리즘
eun_00
2024. 5. 9. 21:17
출처: [혼자 공부하는 머신러닝+딥러닝] 책
혼자 공부하는 머신러닝+딥러닝 - 예스24
- 혼자 해도 충분하다! 1:1 과외하듯 배우는 인공지능 자습서 이 책은 수식과 이론으로 중무장한 머신러닝, 딥러닝 책에 지친 ‘독학하는 입문자’가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있
💡 로지스틱 회귀 알고리즘을 배우고, 이진 분류 문제에서 클래스 확률을 예측해보자
- 표준화할 때는 반드시 훈련세트의 통계값으로 테스트 세트를 변환해야한다.
- 이중분류에서 확률이 0~1 사이에 있으려면 z가 아주 큰 음수일 땐 0이 되고, 큰 양수일 때는 1이 되도록 바꿔주는 시그모이드 함수를 사용한다.
- 다중분류에서는 여러개의 선형방정식 출력값을 0~1 사이로 압축하고 전체 합이 1이 되도록 하는 소프트맥스 함수를 사용한다.
📍 Logistic Regression 정리
선형 분류 알고리즘
Scikit-learn LogisticRegression 클래스
solver 매개변수 : 기본값 'lbfgs', 'sag' 확률적 평균경사하강법 알고리즘 많이 사용
penalty 매개변수: 기본값 L2규제(릿지), L1규제(라쏘)
C 매개변수: 기본값 1.0, 값이 작을수록 규제가 강해짐 즉 과소적합 유도
💡 경사하강법 알고리즘을 이해하고, 대량의 데이터에서 분류 모델을 훈련하는 방법을 알아보자.
- 훈련한 모델을 버리지는 않되, 새로운 데이터에 대해서만 조금씩 더 훈련하는 것이 점진적 학습 방법이다.
- 확률적경사하강법은 훈련세트에서 샘플 하나씩 꺼내 손실함수의 경사를 따라 최적의 모델을 찾는 알고리즘이다.
- 훈련세트에서 랜덤하게 하나의 샘플을 선택하여 경사를 내려가고, 또 다른 샘플을 랜덤하게 선택하여 내려가고 이런식으로 모든 샘플을 계속한다.
- 이 모든 샘플로 1회 경사를 내려가면, 다시 처음부터 시작하는데 만족할만한 위치에 도달할 때까지 계속 내려간다. 확률적경사하강법에서 훈련세트를 한번 모두 사용하는 과정을 에포크라고 한다
손실함수
- 머신러닝 알고리즘이 얼마나 엉터리인지를 측정하는 기준. 확률적 경사하강법이 최적화할 대상이다.
- 손실함수는 미분 가능해야한다.
- 이진분류 손실함수: binary cross-entropy loss function
- 다중분류 손실함수: cross entrophy loss function
- 회귀: 평균제곱오차 MSE or 평균절대값오차
에포크 수가 많으면 과대적합, 에포크 수가 적으면 과소적합될 우려가 있다.
이 그래프에서 epoch 수가 100이 넘어가면서 과대적합이 되는 것을 볼 수 있다. 또한 초기에는 과소적합된걸 볼 수 있다. epoch 수를 100으로 맞춰서 학습시켜보자.
확률적경사하강법을 통해 성능이 많이 높아진걸 볼 수 있다!!
📍 경사하강법 정리
Scikit-learn SGDClassifier 이용
loss 매개변수 : log는 로지스틱 손실함수
max_iter 매개변수: 에포크 횟수 지정
tol 매개변수: 반복을 멈출 조건. None 선택 시 성능이 올라가도 정해진 epoch 수만큼 이른 중단 없이 무조건 학습