빅데이터 분석 기사

필기) 3과목-08 분석 기법 - 로지스틱 회귀(분류)

37_KIM 2022. 8. 17. 01:04

 

 

S3-02 분석 기법


1. 회귀 분석
2. 로지스틱 회귀 분석
3. 의사결정나무, SVM

4. 앙상블

5. 인공신경망, 딥러닝

6. 연관분석

7. 군집분석

 

 

2-1 로지스틱 회귀

- 분류를 위한 모형 앞서 배운 선형회귀와는 완전 다름

 

- 선형회귀(Linear Regression)는 x값의 변화에 따라서 y가 -∞에서 +∞방향으로 가고있다

  선형회귀에서는 y가 0과 1을 초과할 수 있다

- 로지스틱회귀(Logistic Regression)는 x값의 변화에따라서 y가 0에서 1 사이의 확률값을 갖고 있는것

  로지스틱회귀에서는 0에서 1범위에 포함

- 로지스틱 회귀분석에서는 시그모이드 함수를 사용해서 y를 0에서 1사이의 값으로 바꿔준다

  위에 식에 x값을 넣었을 때 y값이 0에서 1사이 값으로 나온다

 

선형 회귀 분석 로지스틱 회귀 분석 선형 회귀, 로지스틱 회귀의 공통점
- 회귀!! Regression
- 정규분포를 따름
- 종속변수는 연속형
- -∞ ~ +∞ 사이의 값
- 모형 탐색 : 최소자승법
- 모형 검정 : F-test, t-test
- 분류!! Classficassion
- 이항분포를 따름
- 종속변수는 범주형
- 0 ~ 1 사이의 확률 값
- 최대우도법, 가중최소자승법(WLS)
- 모형 검정 : X² test
- 지도학습(Supervised Learning)
(x,y값 독립변수, 종속변수 다 있다는것)
- 결정계수는 모두 파라미터
- 독립변수는 연속형, 범주형 모두 사용

- WLS(Weighted Least Squares) : 회귀 모수의 오차항 분산에 반비례하는 가중치를 부여하여 가중 오차제곱합을 최소화하는 방법

 

 

2-2 로지스틱 회귀분석

  • 종속변수를 전체 실수 범위로 확장하여 분석하고, sigmoid 함수를 사용해 연속형 0~1 값으로 변경

- 우리가 필요한것은 확률값 probability 0 ~1 사이의 값

- odds를 적용시킨다

- odds에 log를 취함 p=확률값, log(odds(p)) = ax + b의 선형형태 Linear Regression에서 썼던 형태로 분석가능

- sigmoid함수식으로 범주형 → 연속형으로 바꿈

 

 

2-3 로지스틱 회귀분석

- prob(=확률) =  0.8인것에 대해서

- odds = 0.8 / 0.2 = 4

- log(odds(p))도 구해보고

- sigmoid함수도 적용

 

- Values table보면 probability하고 r하고 확률이 똑같음

- 성공확률이 0.8일때 실패확률이 0.2로 성공이 일어날 확률이 실패할 확률보다 4배 많다(= 승산)

 

ㆍ승산(odds) = 성공률/ 실패율

    - 성공이 일어날 가능성이 높은 경우는 1.0 보다 큰 값

    - 실패가 발생할 가능성이 높은 경우는 1.0 보다 작은 값

        ex) 간장, 설탕을 사용한 소스를 만들 때 비율 표현

                 - 확률 표현 : 80% 간장, 20% 설탕 사용

                 - 승산 표현 : 4:1 (간장:설탕)

    - 로지시틱의 회귀계수, 확률에 대해 0 ~ ∞로 변환한 값

ㆍlog odds, logit transformation = log(odds)

    - 선형화(linearization)의 하나로, odds값에 log를 취하여 값의 범위를 전체 실수 범위로 확장함

ㆍsigmoid 함수

    - Logistic 함수라 불리기도 하며, log odds 값을 연속형 0~1 사이의 값으로 바꾸는 함수

    - 비선형 값을 얻기 위해 사용

 

 

 

2-4 로지스틱 회귀분석 해석

- 승산비 : a변수 b변수의 확률이 나왔을 때, 각각의 odds를 구하고 a와 b의 odds로 비율을 구하는 것 

- Values table에서 승산비는 4가 나왔고 이는 a와 b의 승산율을 보았을 때 a가 4배 더 승산이 있다

- a(0.5)와 b(0.2)의 값 차이는 0.3이지만 승산비로 따졌을 때는 4배차이가 나게되는 것

 

ㆍ승산비(odds ratio) = 관심있는 사건이 발생할 상대 비율, x=1일 떄, y=1이 되는 상대적 비율

    - odds_a / odds_b = exp(coef) = exp(5.140336) = 170.7731385

    - 로지스틱 회귀에서 exp(x1)의 의미 (단, x1 : 회귀계수)

    - 나머지 변수가 주어질 때 x1이 한 단위 증가할 때마다 성공(Y=1)의 odds가 몇 배 증가하는지를 나타냄

      ※ exp(coef)=회귀계수에 지수를 취한것

 

예) 불꽃data라는것을 사용해서 로지스틱 회귀분석한 것

- iris라는 데이터는 범주를 예측하는 데이터로 분류모델에 사용되는 데이터

- 범주는 원래 3가지가 있지만 여기서는 'setosa'와 'versicolor'라는 두가지 범주만 사용할 것이고

- 이것을 factor타입으로 만들었을 때, 'setosa'=0, 'versicolor'=1이라는 값을 가진다 (우리가 관심을 가지고있는 것은 1이므로 'versicolor'가 우리가 관심있는 사건으로 볼 수 있다)

- 'setosa'인지 'versicolor'인지 Sepal의 Length를 가지고 범주를 예측한다

 

이런식으로 b를 구했을 때 b에 대한 회귀계수를 보게되면

> codf(b)

(Intercept는 절편)이고 Sepal.Length에서 회귀계수가 5.140336이 나오는 것을 볼 수 있다

 

그리고 승산비를 알고싶다면 b에대한 회귀계수에 지수를 취해서 Sepal.Length에 관한것만 표시해보면

> exp(coef(b))['Sepal.Length']

Sepal.Length 는 170.7732가 나오고

ㆍY=1은 versicolor 일 경우, Sepal.Length가 한 단위 증가하면 versicolor일 odds가 170배 증가를 의미함

- 이렇게 회귀계수에 대해서 exp을 취한것이 승산비라는것을 기억하고 성공에 대한 odds가 170배 증가한다

 

 

 

 

 

 

[출처] - EduAtoZ - Programming [빅데이터 분석기사 필기 3과목]