인공지능 머신러닝 - 로지스틱 회귀 모델(Logistic Regression)

로지스틱 회귀 (Logistic Regression)

  • 종속 변수가 이분형일 때 수행할 수 있는 회귀 분석 기법의 한 종류
  • 종속 변수(y)를 0과 1로 분류
  • 종속 변수가 이분형 일 때, 즉 분류하기 위해 사용 (Classification)

< 로지스틱 회귀 그래프 예시 > 나이대별 메일 열람 여부

 

  • 기본 개념 자세히 알아보기
더보기
  • 선형 회귀(Linear Regression)으로 표현

 

  • 이와 비슷하게 생긴 함수가 이미 존재 (sigmoid function)

 

  • 선형 회귀의 식을 시그모이드에 대입해서 일차 방정식으로 만들면 다음과 같다
    • 아래와 같은 식을 가진 회귀 분석을 로지스틱 회귀라고 한다.

 

  • 시그모이드 함수에 적용한 식을 통해 두 개로 분류 할 수 있다. (Action : 행동을 취한다 / 하지 않는다)
  • 이를 가지고 X의 각 항목별로 확률을 확인 할 수 있음
  • p(Probability) : 확률 값

 

  • 최종 예측 값은 0.5를 기준으로 두 개의 값으로 분류
    • 0과 1로 분류 : 0.5 이상 > 1 / 0.5 이하 > 0

로지스틱 회귀 모델링 절차

  • 시그모이드 함수를 사용하여 알려지지 않는 파라미터를 데이터로부터 추정해 0과 1로 분류하는 것
  • 인공지능 모델링의 순서
    • 1. 피처 스케일링(전처리)
    • 2. 학습용과 테스트용 데이터 분리
    • 3. 모델링
    • 4. 성능 테스트 및 오차 확인

라이브러리 호출

import matplotlib.pyplot as plt
# 표 작성을 위한 라이브러리

import pandas
# 데이터프레임 사용을 위한 라이브러리

from sklearn.preprocessing import StandardScaler
# 피처 스케일링 표준화 사용을 위한 라이브러리

from sklearn.model_selection import train_test_split
# 인공지능 학습을 위한 라이브러리

from sklearn.linear_model import LogisticRegression
# 인공지능 모델링을 위한 라이브러리

로지스틱 회귀(Logistic Regression) 모델로 인공지능 학습하기

예시 데이터

  • 나이와 연봉을 분석해서 물건 구매 여부를 예측
  • 예시에 쓰일 데이터프레임

Social_Network_Ads.csv
0.01MB


피처 스케일링

  • 우선 NaN값이 존재하는지 확인, 존재하면 NaN처리

 

  • 독립 변수와 종속 변수 지정, 데이터(X, y) 분리
    • 독립 변수(X) : 나이(Age) / 연봉(EstimatedSalary)
    • 종속 변수(y) : 구매횟수(Purchased)

 

  • 데이터 표준화 (정규화 해도 됨)
    • from sklearn.preprocessing import StandardScaler


데이터(학습용/테스트용) 분리

  • from sklearn.model_selection import train_test_split


인공지능 로지스틱 회귀 모델링


인공지능 성능 테스트

  • 0과 1로 된 예측 값은 표(plot)으로 작성하면 보기 어려움.
  • 때문에 분류의 결과 값을 보기 위해 Cunfusion Matrix(분류결과표)를 이용하려 함.

 

인공지능 머신러닝 - 분류결과표(Confusion Matrix), 정확도(Accuracy score), 평가 지표(classification report)

해당 글은 이전 글의 내용과 이어짐을 말씀드립니다. 때문에 이전 글에서 학습시킨 로지스틱 회귀 모델 인공지능의 데이터를 기반으로 작성되었습니다. 이전 글 확인하기 : https://luvris2.tistory.com

luvris2.tistory.com