728x90
반응형
로지스틱 회귀분석의 개념
- 로지스틱 회귀(logistic regression)란 회귀모델에서 종속변수의 값의 형태가 연속형 숫자가 아닌 범주형 값인 경우를 다루기 위해서 만들어진 통계적 방법이다.
- ex) irsis 데이터셋에서 4개의 측정값을 가지고 품종을 예측. 품종이 범주형 값
- R에서 로지스틱 회귀 모델은 glm()함수 이용한다.
로지스틱 회귀모델 만들기
- 로지스틱 회귀도 기본적으로 회귀 기법이기 떄문에 종속변수가 숫자로 표현되어야 한다.
- 예를 들어서 YES와 NO는 0과1로, setosa, versicolor, virginica는 1,2,3과 같이 숫자로 바꾼 후에 로지스틱 회귀를 적용해야 한다.
# 로지스틱 회귀모델 만들기
iris.new <- iris
iris.new$Species <- as.integer(iris.new$Species) # 범주형 자료를 정수로 출력하기.
head(iris.new)
mod.iris <- glm(Species~.,data = iris.new) # 로지스틱 회귀모델 도출
summary(mod.iris) # 회귀모델의 상세 내용 확인하기.
로지스틱 회귀모델을 이용한 예측
- 수작업으로 계산하여 품종을 예측하는 방법 대신, 구해놓은 회귀모델을 이용해 보다 편리한 방법으로 품종을 예측한다.
# 로지스틱 회귀모델을 이용한 예측
# 예측 대상 데이터 생성하기(데이터 프레임)
uk <- data.frame(rbind(c(5.1,3.5,1.4,0.2))) # 데이터 프레임 생성
names(uk) <- names(iris)[1:4] # 열 이름넣기.
head(uk) # 데이터 열 이름 넣은거 확인
pred <- predict(mod.iris,uk) # 품종 예측
pred
round(pred,0) # 예측 결과 출력(소수점 첫째 자리에서 반올림)
# 실제 품종명 알아보기
pred <- round(pred,0)
pred
levels(iris$Species)
levels(iris$Species)[pred] # pred 반올림으로 1로 변경 = 1 setosa 출력
levels(iris$Species)[2] # 2번째 versicolor 출력
다수의 데이터에 대한 예측
- 예측 대상 데이터가 여러 개인 경우에도 유사한 방법으로 예측
# 다수의 데이터에 대한 예측
test <- iris[,1:4] # 예측 대상 데이터
pred <- predict(mod.iris,test)# 모델을 이용한 예측
pred # 반올림 전 데이터
pred <- round(pred,0) # 반올림
pred # 예측 결과
answer <- as.integer(iris$Species) # 종 - 정수형
pred == answer # 예측 품종과 실제 품종이 같은지 비교
acc <- mean(pred == answer) # 예측 정확도 계산
acc # 예측 정확도 출력
출처 : 모두를 위한 R 데이터 분석 입문 한빛아카데미
728x90
반응형