본문 바로가기
실생활정보

파이썬으로 배우는 로지스틱 회귀 분석 - 초보자를 위한 완벽 가이드

by rainypass 2024. 6. 25.

1. 로지스틱 회귀 분석이란

 

Logistic Regression

 

  • 로지스틱 회귀 분석은 주로 이진 분류 문제를 다루는 머신러닝 알고리즘이다.
  • 로지스틱 회귀는 회귀 알고리즘이지만 실제로는 분류 문제를 해결하는 데 사용된다.
  • 로지스틱 회귀는 선형 회귀와 달리 출력값을 시그모이드 함수를 통과시켜 확률값으로 변환한다.
  • 이렇게 구한 확률값을 기준에 따라 0 또는 1로 분류하는데 사용한다.
  • 로지스틱 회귀는 입력 변수에 선형 가중치를 할당하고 학습 데이터에 가장 적합한 선을 찾는다.

 

 

2. 파이썬을 이용한 데이터 전처리

 

 

  • 결측치 처리: Missingno 라이브러리를 사용하여 결측치 시각화 및 처리
  • 이상치 탐지: 이상치를 식별하고 처리하는 방법
  • 범주형 데이터 처리: 범주형 데이터를 머신러닝 모델이 이해할 수 있는 형태로 변환
  • 특성 스케일링: StandardScaler, MinMaxScaler 등을 사용한 특성 스케일링
  • 피처 엔지니어링: 새로운 피처를 생성하여 모델의 성능 향상

 

 

3. 학습 데이터셋과 테스트 데이터셋 분리

 

Splitting

 

  • 데이터셋 로드: 먼저 데이터셋을 로드해보자. 판다스 라이브러리를 사용해서 csv 파일을 데이터프레임으로 읽어오자.
  • 데이터 확인: 데이터를 확인하여 어떤 컬럼들이 있는지, 결측치가 있는지 등을 살펴보자.
  • 독립변수와 종속변수 분리: 독립변수와 종속변수를 분리하여 Xy에 할당하자.
  • 학습 데이터셋과 테스트 데이터셋 분리: train_test_split 함수를 사용하여 데이터를 학습 데이터셋과 테스트 데이터셋으로 분리하자. 일반적으로 7:3 혹은 8:2의 비율로 분리한다.

 

 

4. 로지스틱 회귀 모델 훈련

 

 

  • 학습 데이터셋을 훈련 세트와 검증 세트로 나누어야 합니다.
  • 로지스틱 회귀 모델을 훈련시키기 위해 scikit-learnLogisticRegression 클래스를 사용합니다.
  • LogisticRegression 객체를 생성하고 fit 메서드를 사용하여 모델을 훈련합니다.
  • 학습된 모델의 성능을 평가하기 위해 평가 지표를 사용합니다.
  • 모델의 성능을 개선하기 위해 하이퍼파라미터 튜닝을 수행할 수 있습니다.

 

 

5. 모델 성능 평가 및 향상 방법

 

ROC curve

 

  • 혼동 행렬(Confusion Matrix): 분류 모델의 성능 평가를 위해 실제 클래스와 예측 클래스를 비교하는 행렬입니다.
  • 정확도(Accuracy): 전체 샘플 중 올바르게 분류된 샘플의 비율을 나타냅니다.
  • 정밀도(Precision): 양성 클래스로 예측한 샘플 중 실제로 양성 클래스인 비율을 나타냅니다.
  • 재현율(Recall): 실제 양성 클래스 중 모델이 양성 클래스로 올바르게 예측한 비율을 나타냅니다.
  • F1 점수(F1 Score): 정밀도와 재현율의 조화 평균을 나타내는 지표로, 두 값의 균형을 평가합니다.

 

 

6. 실제 예시로 배우는 로지스틱 회귀 분석

 

Practical Examples

 

  • 타이타닉 생존자 예측하기
  • 먼저, 타이타닉호의 승객 데이터를 활용하여 생존자를 예측해보겠습니다. 우리가 사용할 데이터에는 각각의 승객이 생존했는지 여부가 포함되어 있습니다. 이를 통해 로지스틱 회귀 분석을 통해 생존 여부를 예측할 수 있습니다.

  • 데이터 전처리
  • 데이터를 분석하기 전에는 먼저 데이터를 살펴보고 전처리 작업을 해야 합니다. 결측치 처리와 범주형 데이터를 수치형으로 변환하는 작업이 필요합니다.

  • 모델 학습 및 예측
  • 데이터 전처리가 완료되면 이제 모델을 학습하고 예측해볼 차례입니다. 로지스틱 회귀 모델을 학습시키고 실제로 생존 여부를 예측해보겠습니다.

  • 평가
  • 마지막으로 모델의 성능을 평가하는 단계입니다. 정확도, 재현율, 정밀도 등의 지표를 활용하여 모델의 예측 능력을 평가할 수 있습니다.