로지스틱 회귀분석의 목표
종속변수(y)가 연속형이 아닌 범주형 값인 경우 분류문제를 다루기위한 통계적 방법
회귀식 : y = b0 + b1x1+b2x2+...+bnxn
주요 이론
- 분류문제를 회귀의 방법으로 해결하는 방법.
회귀기법의 하나이므로 종속변수가 숫자로 표현.
- 로지스틱회귀식 : 다중선형회귀와 공식이 동일.
- R : pred = predict(모델,예측값)
#predict()함수로 예측결과 출력가능
pred는 정수가 아닌 실수가 표시되며, 소수 첫째자리에서 반올림한 값이 예측값이다.
- 주요변수 : *** 별표 확인
- R : lm()이 아닌 glm()으로 모델학습
주요 R코드 (암기)
df$범주형y = as.integer(df$범주형y)
#범주형 자료(a,b,c..) 를 정수(1,2,3..)로 변환
모델 = glm(범주형y ~ . , 데이터셋)
summary(모델)
pred = predict(모델, 예측대상값) #범주예측
pred = round(pred,0) #list형태로 나옴.
levels(df$범주형y)[pred] #실제 범주명 알아보기
ans = as.integer(df$범주형y)
acc = mean(pred == ans) #예측정확도 계산 및 출력
로지스틱회귀분석 R실습
문제 : 여러독립변수 이용해 종속변수에측
#실습코드
#1)데이터셋 준비
df = iris
df$Species = as.integer(df$Species)
#범주형자료 정수로변환
#2)로지스틱회귀모델 학습
model=glm(Species~ . , data=df)
summary(model) #coefficients부분, ***확인
#3)모델로 예측하기
val = data.frame(rbind(c(5,3,1,2)) #예측대상값
names(val) = names(df)[1:4]
pred = predict(model, val) #품종예측
pred= round(pred,0)
levels(iris$Species)[pred] #실제 범주와 매칭하기
#4) 다수데이터 예측하기
test = iris[, 1:4]
pred = predict(model, test)
pred=round(pred,0)
ans = as.integer(iris$Species)
acc= mean(pred == ans) #예측정확도
'ADP실기공부 > 응용' 카테고리의 다른 글
R 데이터분석 - 직업별 월급 최대 찾기 문제 (0) | 2023.04.25 |
---|---|
R데이터분석 - 로지스틱 회귀분석 분류문제 (0) | 2023.04.24 |
다중선형 회귀분석 R실습 (0) | 2023.03.14 |
단순회귀분석 R 실습 (0) | 2023.03.14 |