로지스틱 회귀분석 분류문제
-베르누이 시행 (1 또는 0 결과만 존재)에 대한 분류문제
-모델 결과값은 각 데이터가 1이 될 확률 나옴
-분류를 위해 threshold=문턱값이 필요
별도 요구없으면 0.5 기준으로 학습시행
ex) 0.5이상인 값은 1로취급
0.5미만인 값은 0 으로 취급
사용라이브러리
Metrics
분류 모델 평가 함수들
accuracy(class)
precision()
recall() 재현율
f1()
auc(pred)
응용문제
독립변수를 혈압, 혈당,BMI, 인슐린,
종속변수를 당뇨여부로 모델 학습시 분류 정확도는?
- 데이터 diabetes.csv 사용
-caTools 패키지의 sample.split() 함수사용하기
-학습데이터 비율 80%
- seed 123으로 설정
-답: 0.72
#종속변수가명목형 변수이고, 독립변수가 수치형 변수일때 로지스틱 회귀분석 이용하기
0)데이터분리
set.seed(123)
idx_train = caTools::sample.split(df$종속변수, Splitratio=0.7)
df_train = df[idx_train, ]
df-test = df[!idx_train, ]
1) 학습
model=glm(Outcome~BloodPressure+Glucose+Insulin, #사용할 변수만 정리
df_train, #수치형변수
family = "binomial") #family 누락주의
2)예측
pred=predict(model, df_test, type="response") #type 누락주의
pred_class = (pred>0.5)+0
#확인 table(df[,"Outcome"], pred_class)
3)평가하기
accuracy(df_test$Outcome, pred_class) #분류문제이므로 class로 넣기
auc(df_test$outcome, pred) #주의 , pred_class가아니라 확률값 상태 pred로 넣기. 이때 class로 넣어도 오류메시지가 안뜨므로 특히 주의하기
4)승산비(Odds ratio, OR)
exp(model$coefficients["Insuline"])
'ADP실기공부 > 응용' 카테고리의 다른 글
R 데이터분석 - 직업별 월급 최대 찾기 문제 (0) | 2023.04.25 |
---|---|
로지스틱 회귀분석 R실습 (0) | 2023.03.14 |
다중선형 회귀분석 R실습 (0) | 2023.03.14 |
단순회귀분석 R 실습 (0) | 2023.03.14 |