📊 R에서 고객 이탈 예측 모델 구축하기 (Churn Prediction)

R 예제

중급 난이도
예제 타입
10/12 등록일

R에서 고객 이탈 예측 모델 구축하기 (Churn Prediction)

중급
태그
예제 실습 프로젝트 머신러닝 데이터분석 이탈 예측 로지스틱 회귀 R caret
이 예제에서는 R을 사용하여 고객 이탈(Churn)을 예측하는 간단한 모델을 구축합니다. 실제 데이터셋을 사용하고, 다양한 특징들을 활용하여 이탈 가능성을 예측합니다. 이 예제는 머신러닝 프로젝트의 시작점으로서, 더 복잡한 모델을 구축하기 위한 기반을 제공합니다.

## 목적
* 고객 이탈 예측 모델 구축
* 특징 엔지니어링 및 데이터 전처리 수행
* 간단한 분류 모델 학습 및 평가

## 사용 시나리오
1. `churn.csv`라는 이름의 CSV 파일 (예시 데이터 포함)을 로드합니다.
2. 데이터를 탐색하고, 결측치 처리 및 이상치 제거를 수행합니다.
3. 모델 학습을 위해 특징 선택 및 훈련 데이터를 준비합니다.
4. 로지스틱 회귀 모델을 학습시키고 평가합니다.
5. 예측 결과를 해석하여 이탈 위험이 높은 고객 그룹을 식별합니다.

## 결과
* 고객 이탈 예측 모델 구축 * 이탈 가능성이 높은 고객의 특징 파악 * 모델 성능 평가 및 개선 방안 제시
코드 예제
```R
# 필요한 라이브러리 설치 및 로드
if(!require(tidyverse)){install.packages('tidyverse')} 
library(tidyverse)
library(caret)

# 데이터 불러오기 (예시 데이터셋 사용)
data <- read_csv("churn.csv")

# 데이터 탐색
summary(data)

# 결측치 처리 (예시: 평균값으로 대체)
for (col in colnames(data)) {
 if(is.na(sum(data[[col]]))){
 data[[col]][is.na(data[[col]])] <- mean(data[[col]], na.rm = TRUE)}
 }

# 특징 선택 및 모델 학습
set.seed(123) # 재현성을 위해 seed 설정
churn_model <- caret::train(
 outcome ~ ., data = data, 
 method = "glm", family = binomial
)

# 모델 평가
caret::confusionMatrix(churn_model- > outcome)

# 예측 수행
predictions <- predict(churn_model, newdata = data, type = "prob")
print(predictions)

# 이탈 가능성이 높은 고객 식별 (예: 확률이 0.5 이상인 경우)
threshold <- 0.5
predicted_class <- ifelse(predictions[,"probability"] > threshold, 1, 0)

# 결과 확인
table(data$churn, predicted_class)
```
등록일: 2025년 10월 12일 21:21
언어 정보
언어
R
카테고리
Data
인기도
#13
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요