로지스틱 회귀(Logistic Regression)
분류 문제(Classification Problem)를 해결하기 위해 자주 사용되는 알고리즘입니다. 이름에 "회귀"라는 단어가 포함되어 있지만, 실제로는 분류(Classification) 작업을 수행함
1. 로지스틱 회귀란?
![]() 로지스틱 함수(시그모이드 함수) |
는 입력 데이터에 가중치 w와 편향 b를 적용한 선형 결합 |
2. 로지스틱 회귀 특징
3. 로지스틱 회귀의 장단점
1) 장점
2) 단점
4. 로지스틱 회귀의 학습 방법
로지스틱 회귀는 데이터를 기반으로 모델의 파라미터(가중치 w, 편향 b)를 학습하며, 이 과정에서 최적화 알고리즘을 사용하여 진행
1). 손실 함수
![]() |
은 데이터 샘플 수, y^(i)는 실제 레이블, h(x^(i))는 예측 확률 |
2) 경사 하강법(Gradient Descent)
![]() |
는 학습률(Learning Rate) |
3) 정규화
(예시 코드) scikit-learn에서 제공하는 Iris 데이터셋을 사용하여 꽃의 품종을 분류하는 방법
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, ConfusionMatrixDisplay
# 1. 데이터 로드
iris = load_iris()
X = iris.data
y = iris.target
# 2. 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 3. 로지스틱 회귀 모델 학습
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# 4. 예측 및 평가
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")
print("\nClassification Report:\n", classification_report(y_test, y_pred))
# 5. Confusion Matrix 시각화
ConfusionMatrixDisplay.from_estimator(model, X_test, y_test, display_labels=iris.target_names)
plt.title("Confusion Matrix")
plt.show()
분류 - K-최근접 이웃(K-Nearest Neighbors) (1) | 2024.12.18 |
---|---|
분류 - 의사결정나무(Decision Tree) (2) | 2024.12.16 |
분류(Classification) (0) | 2024.11.26 |
회귀분석-Elastic Net (1) | 2024.11.20 |
회귀분석-라쏘 회귀(Lasso Regression) (0) | 2024.11.18 |