로지스틱 회귀 (Logistic Regression)
- 입력변수 x와 출력변수 y 간의 관계를 확률로 모델링
- 출력변수는 0 또는 1의 값을 가질 수 있으며, 0 또는 1의 값이 나오도록 확률을 조정하는 함수로는 로지스틱 함수가 사용된다.
- 로지스틱 함수는 S자 모양의 곡선으로 표현되며, 입력 값에 따라 출력 값을 0과 1 사이 값으로 변환합니다.
- 입력 변수의 가중치(weight)와 편향(bias)을 조정하여 최적의 모델을 학습한다.
<코드분석>
load_breast_cancer() : 유방암 데이터 셋
train_test_split() : 데이터를 학습용 데이터와 테스트용 데이터로 나눈다.
stratify = y : 클래스 비율을 동일하게 유지하도록 하여 데이터를 더 잘 분할하게 한다.
학습용 데이터 : x_train , y_train
테스트용 데이터 : x_test, y_test
LogisticNeuron 클래스
- __init__() : 객체 생성자 메서드 , 가중치와 편향을 초기화
- forpass() : 입력값과 가중치를 곱하여 더한 후, 편향을 더해 총합을 계산합니다.
- backprop() : 오차를 계산하여 가중치와 편향의 기울기를 계산합니다.
- activation() : 계산된 총합을 시그모이드 함수에 입력하여 활성화 함수를 적용합니다.
- fit() : 학습용 데이터를 이용하여 모델을 학습합니다.
epochs : 학습 횟수
x_i : 입력값, y_i : 실제 출력값
learning_rate : 학습률
알고리즘
1. forpass() 와 activation()으로 출력값 a 계산
2. y_i와의 오차 err 계산
3. backprop() 으로 기울기 계산
4. 기울기로 가중치와 편향을 업데이트
- predict() : 학습된 모델을 이용하여 입력값의 출력을 예측
예측값이 0.5보다 크면 True, 0.5보다 작으면 False 반환
'CS(Computer Science) > 인공지능' 카테고리의 다른 글
8. 사이킷런 경사하강법 (0) | 2023.03.19 |
---|---|
7. 단일층 신경망 (0) | 2023.03.19 |
5. 뉴런 생성 & 시그모이드 함수 (0) | 2023.03.18 |
4. 경사하강법 (0) | 2023.03.18 |
3. 선형 회귀 (0) | 2023.03.18 |