19. 선형 회귀와 로지스틱 회귀

j_hyun11·2022년 1월 24일
0

FUNDAMENTAL

목록 보기
4/11

1. 회귀분석

회귀분석(Regression Analysis)

  • 관찰된 여러 데이터를 각 연속형 변수 간의 관계를 모델링하고 이에 대한 적합도를 측정하는 분석 방법

예시)

  • 부모와 자식의 키 관계
  • 부동산 가격 예측
  • 1인당 국민 총소득과 배기가스 배출량 사이의 관계 예측

선형 회귀분석의 기본 가정

(1) 선형성 : 예측하고자 하는 종속변수 y와 독립변수 x간에 선형성을 만족하는 특성. 그러므로 비선형회귀분석에서는 해당하지 않는다.

(2) 독립성 : 독립변수 x간에 상관관계가 없이 독립성을 만족하는 특성.
다중 회귀분석에서 중요한 기본가정으로 단순회귀분석에서는 해당하지 않는다.

(3) 등분산성 : 분산이 같다. 이는 잔차가 특정한 패턴 없이 고르게 분포했다는 의미

(4) 정규성 : 잔차가 정규성을 만족하는지 여부. 정규분포를 띄는지 확인

-> 4가지 기본가정을 만족해야 유의한 회귀모델이 나온다.
그렇지 못할 경우 Stepwise로 4가지 기본가정을 위배시키는 변수를 제거

출처: https://kkokkilkon.tistory.com/175 [꼬낄콘의 분석일지]

지도학습의 두 종류

  • 분류 : 데이터 x의 여러 feature값들을 이용하여 해당 데이터의 클래스 y를 추론 -> 클래스별 확률 값을 출력
  • 회귀 : 데이터의 x의 여러 feature값들을 이용하여 연관된 다른 데이터 y의 정확한 값을 추론 -> 연관된 종속변수 값을 직접 출려하는 형태로 모델의 구성이 달라지게 됨

2. 선형 회귀분석

  • 종속변수 Y와 한 개 이상의 독립변수 X와의 선형 상관관계를 모델링하는 회귀분석 기법
  • 1개의 독립변수이면 단순 선형회귀, 2개이상의 독립변수이면 다중 선형회귀

y=βx+ϵ

  • β : 회귀계수 (파라미터)
  • ϵ : 종속변수와 독립변수 사이의 오차 (파라미터)
  • x,y에 데이터를 넣음
    -> 데이터로부터 β와 ϵ를 추정
    -> 모델링을 수행
    -> 새로운 데이터의 x값들을 입력으로 넣음
    -> 해당하는 y 값을 추론
  • 주어진 데이터에 선형식이 잘 맞도록 회귀계수와 오차를 구함

H=Wx+b (머신러닝에서의 선형회귀모델 표기법)

  • H : 가정(Hypothesis)
  • W : 가중치(Weight)
  • b : 편향(bias)
  • 보통 W, b는 고차원의 행렬 형태

선형회귀에서의 손실함수

  • 회귀모델을 이용해 추정한 값과 실제 데이터의 차이
  • 최소제곱법 : n개의 데이터에 대해 잔차의 제곱의 합을 최소로 하는 W,b를 구하는 방법. (잔차를 이용한 회귀모델을 찾는 가장 대표적인 방법)

경사하강법


출처 : https://lsh424.tistory.com/9

  • 적절한 회귀모델의 회귀계수를 찾기 위해서는 손실함수를 잘 설정하는 것이 중요
  • 손실함수를 최소화 시키는 W, b를 구해야함
  • 머신러닝에서는 가중치의 그래디언트(미분값)가 최소가 되는 지점을 손실함수가 최소가 되는 지점이라고 가정
  • w 파라미터 개수가 많을 경우 시간이 많이 걸림


출처 : https://lsh424.tistory.com/9

  • α : learning rate. 적절한 크기로 선정해서 더 빠르게 수렴시킴
  • 머신러닝&딥러닝에서는 굉장히 중요

3. 로지스틱 회귀분석

  • 분류해주는 지도학습 알고리즘
  • 데이터가 어떤 범주에 속할 확률을 0~1사이의 값으로 예측, 확률에 따라 가능성이 더 높은 범주에 속함
  • 이진분류 문제 풀 때 많이 사용

sigmoid function

  • Log-odds 값을 구한 다음, 이를 sigmoid function에 넣어서 0에서 1 사이의 값으로 변환해 주는 것

  • 어느 기점 이하에는 0을 어느 기점 이상에서는 1을 즉, 2분법적으로 나타낼 수 있는 그래프

    출처 : https://lsh424.tistory.com/9

  • 실제 데이터를 대입
    -> Odds, 회귀계수를 구함
    -> Log-odds를 계산한 후 sigmoid function의 입력으로 넣음
    -> 특정 범주에 속할 확률 값을 계산
    -> 설정한 threshold에 맞추어 설정값 이상이면 1, 이하면 0으로 이진 분류를 수행

4. Softmax 함수와 Cross Entropy

Softmax 함수

  • 여러 범주로 분류하는 함수

    출처 : https://lv99.tistory.com/7

  • softmax의 값을 전부 더했을 때 그 합이 1

  • log-odds와 작은 log-odds의 차이를 극대화시킴

  • softmax 함수에 모든 범주의 log-odds를 통과시키면 해당 데이터가 어떤 범주로 분류되는지 확실히 알 수 있음

  • one-hot encoding(0과 1)을 통해 표현

Cross Entropy

  • softmax 함수의 손실함수
  • 분류(classification) 문제를 풀 때 Cross Entropy를 이용해서 손실(loss, cost) 함수를 정의


출처 : https://androidkt.com/choose-cross-entropy-loss-function-in-keras/

  • 로지스틱 회귀모델이 추론한 확률 분포 q(x)와 실제 데이터의 분포 p(x)의 차이를 계산한 것 -> 차이가 적을 수록 Cross Entropy도 작아짐

정리

선형 회귀분석

  • 종속변수가 연속형인 경우, 독립변수의 변화에 따른 종속변수 값의 추정
  • 중요하게 사용되는 함수 : 보편적으로 최소제곱법을 이용
  • 손실함수 : 보편적으로 최소제곱법을 이용

로지스틱 회귀분석

  • 종속변수의 범주가 2개인 경우 범주별 확률을 추정->최대확률 범주를 결정하는 분류모델로 활용
  • 중요하게 사용되는 함수 : logits(= log-odds), sigmoid 함수
  • 손실함수 : cross entropy(class = 2)

다중 로지스틱 회귀분석

  • 종속변수의 범주가 여러 개인 경우의 로지스틱 회귀분석
  • 중요하게 사용되는 함수 : cross entropy 함수, softmax 함수
  • 손실함수 : cross entropy

0개의 댓글