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정규화도 쓸 수 있다.
'data analysis, R' 카테고리의 다른 글
R-공부 : 스코어링, Decision Tree & Random Forest (0) | 2021.05.08 |
---|---|
R공부- K-Nearest Neighbor (0) | 2021.05.02 |
R공부- 데이터로 분석하는 지도학습 개념 (0) | 2021.05.01 |
R공부- 단순 선형 회귀분석 (0) | 2021.04.30 |
R_공부: 머신러닝 & 확률 기초 (0) | 2021.04.29 |
댓글