본문 바로가기
data analysis, R

R공부- Logistic Regression 개념 이해

by 데이터 퍼즐 2021. 5. 3.
반응형

1) Logistic Regression

ㄴ선형회귀분석: 선형회귀분석의 y(종속)값은 무제한 값으로 제한 없음, 연속형 숫자(범주x)

ㄴvs로지스틱: y(종속)에 제한이 있어 가질 수 없는 값이 있고, 범주형, 연속형 모두 됨(주로 연속형)

 

2) 로지스틱으로 변형

z=a+bx

z값의 제한

y=1/1+자연상수(시그모이드함수)=1/1+e^-(a+bx)

log(y/1-y)=a+bx

#log는 자연로그

y=파이(x)

logit(파이(x)=log(파이(x)/1-파이(x))=a+bx

오즈비(odds ratio)= 양성(1) 확률은 음성(0) 확률의 몇 배?

 

#0.5이상? 1일 확률이 높아짐(기울기가 크다?=> x가 조금만 증가해도 1일 확률 급격히 증가)

 

* 로지스틱 회귀분석

ⓐBoosted Logistic Regression , method='LogitBoost' (약+약=강): 약한 분류기를 더해서 강하게 만드는 것으로 피쳐 하나만 가지고 로지스틱 모델을 만든다.

ex) log(심장병(유)/심장병(무))=a+b(나이)+log(심장병(유)/심장병(무))=a+b(성별)+log(심장병(유)/심장병(무))=a+b(콜레)

 

ⓑLositstic Model Trees , method='LMT' (로지스틱+의사결정나무)

ex) 성별->영역1,영역2->/나이/영역3,4 ->영역5,6

ㄴlamda값: 작은 수가 곱해지면 타원 크기가 줄어듬, 람다의 크기에 따라서 b값이 달라짐

실습

#install.packages("caret", dependencies=TRUE)

library(caret)

rawdata<-read.csv(file="파일경로/heart.csv,header=TRUE)

str(rawdata)

ㄴ전처리필요성

ㄴ타겟클래스 범주화

rawdata$target<-as.factor(rawdata$target)

unique(rawdata$target)

ㄴ연속형-<표준화(scale), 범주화->범주화(as.factor)#범주화 때 lapply를 쓰면 쉽게 범주화 가능

predict함수, confusionMatrix, varlmp(logitFit, scale=FALSE)

#FALSE: 0~100까지 제한 하지 않겠다

 

ⓒPenalized Logistic Regression, method='plr'(패널티)

ex) b영역에 제한을 줌(∑b제곱<t(제한)): 제한을 하는 이유는 모델의 복잡성(complexity)조절을 위함이고 단순화하여 오버피팅(overfitiing)을 피하기 위함

ㄴ최적화 방법: primal(베타기준), dual(제약변수 기준)

ex) cost(∑실제값-예측값), loss(실제값-예측값), epsilon(차이가 입실론 이하가 되면 멈추겠다)

cost는 전체데이터셋에 대한 것, for 각각의 데이터 포인트 # 문맥이나 상황에 따라서 혼용해서 쓰이기도 함

 

ⓓRegularized Logistic Regression, method='regLogistic' 

ex) L1정규화(마름모꼴:라쏘(lasso) , L2정규화(타원형:릿지(Ridge) : L1정규화도 쓸 수 있다.

 

 

 

반응형

댓글