무언가를 꾸준히 한다는 게 참 쉽지 않다는 걸 느끼고 있습니다. 왜 변환점을 도는 요맘때가 고비인 지 알 것 같아요
평일에 혼공단 활동을 하는 게 쉽지 않아서 주말에 하고 있는데 정말 하루하루가 순식간에 지나갑니다.
사설이 길어지는 3주차입니다..ㅎㅎ 진짜 그러면 시작해 볼까요!!!
Ch 04-1. 로지스틱 회귀
✔️ 로지스틱 회귀
: 선형 방정식을 바탕으로 분류를 하는 모델
- 시그모이드 함수를 이용하여 0~1 사이 값을 표현
- 넘파이를 이용하여 시그모이드 함수 그래프를 그리면 다음과 같다.
✔️ 로지스틱 회귀 이진 분류 실습
1) 데이터 준비
2) 모델 학습
3) 샘플 예측 및 예측 확률 출력
4) 사용된 로지스틱 회귀 함수 확인
따라서, 로지스틱 회귀 모델이 학습한 방정식은 다음과 같음
z = -0.404 × (weight) - 0.576 × (length) - 0.663 × (Diagonal) - 1.013 × (height) - 0.732 × (width) - 2.161
- decision_function(): z값 계산
- expit(): 시그모이드 함수 계산 → z값 확률 계산
✔️ 로지스틱 회귀 다중 분류 실습
1) 로지스틱 회귀 함수 학습
- 파라미터 설정
- max_iter: 반복 횟수. 기본값은 100
- C: 규제 제어 정도. 값이 작을수록 규제가 커지며 기본값은 1 (+로지스틱 회귀는 계수의 제곱을 규제=L2 규제)
2) 샘플 예측 및 예측 확률 출력
3) 다중 분류의 로지스틱 회귀 함수
: 소프트맥스 함수를 사용하여 7개의 z값을 확률로 변환
✔️ 기본 미션 (04-1 #2 확인 문제)
Q. 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?
1. 시그모이드 함수
2. 소프트맥스 함수
3. 로그 함수
4. 지수 함수
💡선형방정식의 출력을 시그모이드 함수( $1/(1+e^{-z})$ )를 이용하여 변환하면 0~1의 값으로 나타낼 수 있다.
소프트맥스는 이진 분류가 아닌, 다중 분류에서 사용한다
Ch 04-2. 확률적 경사 하강법
✔️ 확률적 경사 하강법
잠시 이차함수의 그래프를 생각해 보자. 이차함수의 꼭짓점을 찾기 위해 어떤 방법을 사용했는지 생각나는가?
우리는 기울기를 이용하였다. 미분을 통해 기울기를 비교, 기울기가 0인 지점이 곧 꼭짓점임을 이용하였다.
이를 바탕으로 확률적 경사 하강법을 이해해 보자.
확률적 경사 하강법이란, 점진적 학습(훈련한 모델+새로운 데이터 조금씩 더 훈련)의 대표적인 알고리즘으로 하나의 랜덤한 샘플을 골라 기울기를 비교해 나가며(전체 샘플을 모두 사용할 때까지 반복) 경사를 내려가는 방식이다.
- 에포크(epoch): 훈련 세트를 한 번 모두 사용하는 과정
- Minibatch Gradient Descent: 여러 개의 샘플을 사용해 경사 하강법을 수행하는 방식
- Batch Gradient Descent: 전체 샘플을 사용해 경사 하강법을 수행하는 방식
- Stochastic Gradient Descent: 하나의 샘플을 사용해 경사 하강법을 수행하는 방식
✔️ 손실 함수(loss function)
: 머신러닝 알고리즘이 얼마나 엉터리인지를 측정하는 기준 ⇒ 값이 작을수록 좋음
- 미분 가능해야 함(∵ 기울기를 비교해야 함)
- 이진 분류 loss function: logistic loss function(=binary cross-entropy loss function)
- 다중 분류 loss function: cross-entropy loss function
- 비용 함수(cost function) : 훈련 세트에 있는 모든 샘플에 대한 손실 함수의 합
✔️ 확률적 경사 하강법 실습
1) 데이터 준비 및 전처리
2) 확률적 경사 하강법 학습
- SDGClassifier 이용
3) 에포크와 과대/과소 적합
- 과소 적합: 에포크 횟수가 너무 적은 경우 발생
- 과대 적합: 에포크 횟수가 너무 많은 경우 발생
'Activities > [혼공단 11기] 머신러닝+딥러닝' 카테고리의 다른 글
5주차_Ch.06 비지도 학습 (0) | 2024.02.04 |
---|---|
4주차_Ch.05 트리 알고리즘 (3) | 2024.01.28 |
2주차_ Ch.03 회귀 알고리즘과 모델 규제 (1) | 2024.01.14 |
1주차_Ch.02 데이터 다루기 (2) | 2024.01.02 |
1주차_Ch.01 나의 첫 머신러닝 (6) | 2024.01.02 |