# 로지스틱 회귀 (Logistic Regression)
로지스틱 회귀는 이름에 '회귀'가 들어가지만, 분류 문제에 사용되는 알고리즘입니다. 주로 이진 분류 문제에 사용되며, 확률을 출력으로 가집니다.
### 수식
- \(P(Y=1) = \frac{1}{1 + e^{-(\beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_nx_n)}}\)
- \(P(Y=1)\): 클래스 1에 속할 확률
- \(x_1, x_2, ..., x_n\): 독립 변수들
- \(\beta_0, \beta_1, ..., \beta_n\): 회귀 계수
### 목적
- 로그 오즈를 최대화하는 것입니다. 로그 오즈는 실제 값과 예측 확률 간의 로그 비율로 계산됩니다.
### 사용 사례
- 스팸 메일 분류, 환자의 질병 발병 여부 예측, 고객 이탈 여부 예측 등 이진 분류 문제에 주로 사용됩니다. 다중 클래스 분류에도 확장하여 사용할 수 있습니다.
---
Code View
```python
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 예제 데이터 생성
X = np.random.rand(100, 1) * 10 # 100개의 랜덤 데이터
y = (X > 5).astype(int).ravel() # X가 5보다 크면 1, 아니면 0
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 로지스틱 회귀 모델 학습
model = LogisticRegression()
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
print("Coefficients:", model.coef_)
print("Intercept:", model.intercept_)
```