이름은 회귀이지만 분류 알고리즘의 하나인 로지스틱 회귀에 대해 알아보자 - !
(😋이름에 회귀가 들어가는 이유는 선형 알고리즘을 사용하기 때문이당)
https://www.youtube.com/playlist?list=PLJN246lAkhQjoU0C4v8FgtbjOIXxSs_4Q
9강. 로지스틱 회귀 알아보기
📍 시나리오
도미와 빙어, 둘 중에 한 마리의 생선이 나오는 럭키백이 있다!
각각의 확률은 어떻게 될까?
- K-최근접 이웃 알고리즘
- 로지스틱 회귀 알고리즘 (이진 분류)
- 로지스틱 회귀 알고리즘 (다중 분류)
확률 예측 → 분류
➡️ 분류 모델에서 확률 가져오는 방법
1. K-최근접 이웃 알고리즘으로 확률 계산하기
- 가까운 K 개의 이웃 찾기
- 이웃한 샘플 클래스의 비율로 확률을 예측한다
- 단점 : 확률이 0, 1/3, 2/3, 1 로만 나온다
2. 로지스틱 회귀 알고리즘으로 확률 계산하기 (이진 분류)
2-1. 로지스틱 회귀란?
- 대표적인 분류 알고리즘
- 인공 신경망의 기본 알고리즘
≒ 선형 알고리즘
- z 의 범위가
-∞ ~ ∞ 라면 선형 회귀,
0 ~ 1 이면 분류이다
- 결과값 > 0.5 : 양성 클래스
- 결과값 < 0.5 : 음성 클래스
- 결과값을 계산하지 않더라도, z 값이 0보다 크면 양성 클래스, 작으면 음성클래스이다
→ decision_function
2-2. 로지스틱 회귀 (이진 분류)
- predict_proba : 각 샘플에 대해 어느 클래스에 속할 확률을 0에서 1 사이의 값으로 돌려준다 🔗
➡️ [[ 도미일 확률, 빙어일 확률 ] [..] .. ]
2-3. 로지스틱 회귀 계수 확인하는 법
- decision_function : z 값 출력
- expit(decisions) : 확률값 도출
= 이진 분류에서 양성 클래스일 확률과 같다
3. 로지스틱 회귀 알고리즘으로 확률 계산하기 (다중 분류)
- 반복적인 알고리즘 사용
- max_iter = 1000 : 반복 횟수
- C : 규제 매개변수 (기본값 1)
- L2 규제가 기본적으로 적용되어 있다
- C ↑ : 규제 ↓
- 7개의 행과 5개의 열 (7개의 선형 함수)
- z 가 7개 → 7개 시그모이드 합 = 1
10강. 확률적 경사 하강법 알아보기
📍 시나리오
기존의 모델에 새로운 데이터를 추가할 때 마다 새로운 훈련을 해야할까?
기존 모델을 유지하면서 업데이트하는 방안을 고려해보자!
기존 모델 유지 = 가중치, 절편 유지
➡️ 점진적 학습, 온라인 학습
➡️ 확률적 경사 하강법 (SGD)
💡 확률적 경사 하강법
- 알고리즘 훈련 방법
- 확률적 = 랜덤
- 경사 = 기울기
✅ 무작위하게 경사를 내려가는 방법
- 가장 가파른 경사를 찾아 조금씩 내려가야 한다
→ 최적점 찾기
1. 훈련 세트에서 샘플을 하나씩 꺼내기
- 다 꺼냈다 = 1 epoch 완료
2. 세트를 다시 채워서 다시 시작하기
- epoch 여러 번 반복
- 규제 ↑ : 과소적합
- 규제 ↓ : 과대적합
- epoch 를 많이 실행할수록 훈련 세트의 정확도는 높아지지만, 테스트 세트의 정확도는 어느 순간부터 낮아진다
- 100 정도의 epoch 가 적당하다 (max_iter = 100)
💡 손실 함수 계산으로 정확도 높이기
- 나쁜 정도를 측정하는 함수
- 값이 낮을수록 좋다
- 분류에서는 정확도로 판단
- 비어있는 구간은 정확도를 측정할 수가 없기 때문에 정확도는 손실 함수로 사용할 수 없다 (미분 불가능)
cf) 회귀에서 손실 함수는 측정 지표로 사용
- 음수 부호를 붙여 정답과의 거리를 계산한다
- loss = 'log' : 로지스틱 손실 함수 지정
- max_iter = epoch
- partial_fit : 기존 학습 유지
- 정확도가 향상된다
- 배치, 미니 배치는 지원하지 않는다
- 과소적합 → max_iter ↑ → 과대적합
'AI' 카테고리의 다른 글
[AI 도전기 10일차] 훈련 세트 & 테스트 세트 & 검증 세트로 교차 검증하기 (0) | 2024.04.06 |
---|---|
[AI 도전기 9일차] 결정 트리에서의 이진 분류에 대해 알아보자 ! (0) | 2024.04.04 |
[AI 도전기 7일차] 회귀 알고리즘과 모델 규제에 대해 알아보자 ! (0) | 2024.04.02 |
[AI 도전기 6일차] 훈련 세트와 테스트 세트 데이터 다루기 (0) | 2024.04.01 |
[AI 도전기 5일차] 간단한 머신 러닝 예제 공부하기 (0) | 2024.03.31 |