놀고 싶어요

[R Programming] 로지스틱 회귀분석 본문

R

[R Programming] 로지스틱 회귀분석

챌린지 2021. 5. 21. 21:03

머신러닝 로지스틱 회귀분석

 

종속변수가 범주형인 경우 어떻게 머신러닝을 활용할 수 있을까?

머신러닝 프로세스는 회귀분석에서 설명한 내용과 동일하게 적용이 되지만 다만 다른 함수를 사용한다.

 

로지스틱 회귀분석

종속변수가 범주형 데이터이다. 출발점에는 회귀분석에 있어서 선형관계를 설명하는 것과 동일한 모양을 갖춘다.

 

‘특정 대여소의 일평균/시간당 평균 대여건수가 너무 낮다면 대여소 위치를 바꿔야 하지 않을까?’

  • 대여건수의 평균이 최소 기준을 넘나 넘지않나 예측이 필요하다.

로지스틱스 회귀분석에서는 사용자가 임계값을 입력하는 것을 기본으로 모델의 설명력을 판단한다.

로지스틱 회귀분석의 머신러닝 프로세스에서는 Accuracy, Precision, Recall, F1-score 등의 확률을 기반으로 평가한다.

 

 

 

 


Train

1. 대여건수가 500건 이상을 나타내는 컬럼 생성해준다.

bike_weather$over_500 <- 1
bike_weather[bike_weather$Count < 500, 'over_500'] <- 0
bike_weather

 

마지막 컬럼으로 over_500이 추가된다. Count값에 따라 1 또는 0으로 구분된다.

 

 

2. 데이터를 train set와 test set으로 나눈다.

train_index <- createDataPartition(bike_weather$Time_out, p=.7, list=F)
training <- bike_weather[train_index,]
testing <- bike_weather[-train_index,]

logreg <- glm(over_500 ~ cum_precipitation+humidity+temp+wind, data=training, family=binomial(link='logit'))
summary(logreg)

회귀분석과 마찬가지로 여러 가지 지표 값들이 결과로 정리되어 제시된다.

좀 더 관심을 두어야 할 부분은 각 독립변수의 p-value이다. (Pr(>|z|))

 

Humidity를 제외한 다른 변수들의 통계적인 유의성이 부족하다.

 

좋은 모델을 만들기 위해서는 p-value의 유의성이 확인되지 않은 독립변수들은 제외하는 것이 일반적인계 통계적 시각이지만 머신러닝에서는 조금 다르게 보기도 한다.

 

여기서는 독립변수는 그대로 유지하고 다음 단계로 넘어가본다.

 

Predict, Evaluate

 MLmetrics 패키지 사용

 

pred$prediction <- predict(logreg, newdata=testing, type='response')

 

앞서 생성한 로지스틱 회귀 모델을 가지고 예측을 수행한다.

 

pred <- ifelse(pred$prediction<0.5, 0, 1)

예측 결과로 얻게 되는 값은 확률 값이다.

 

이 확률 값을 보고 0으로 판단할지 1로 판단할지를 결정해주는 과정이다.

기준값 threshold를 0.5로 사용한 경우다. 기준값은 0~1 사이 값인데 1에 가까운 값을 사용하고도 정확도가 높으면 좋은 예측 모델이다.

 

Recall(pred, testing$over_500, positive='1')
Accuracy(pred, testing$over_500)
Precision(testing$over_500, pred, positive=1)
F1_Score(testing$over_500, pred, positive = 1)

정확도는 training set와 test set을 나누는 과정에서 임의추출되므로 매번 다른 값이 나온다.

 

정확도의 종류

Accuracy: Y를 Y로, N을 N으로 맞힌 경우를 전체의 수로 나누어서 계산한다.

Precision: Y라고 예측한 것 중 실제로 Y였던 경우의 확률

Recall: Y인 케이스에서 얼마나 Y라고 예측했는지 계산

F1_Score: Precision와 Recall의 조화평균