이진 예측 만들기
이전 연습 문제에서 glm() 함수를 사용해 기부자 행동에 대한 로지스틱 회귀 모델을 만들었습니다. R의 여러 Machine Learning 메서드와 마찬가지로, 모델 객체에 predict() 함수를 적용해 향후 행동을 예측할 수 있습니다. 기본적으로 predict()는 type = "response"를 지정하지 않으면 예측값을 로그 오즈(log odds)로 반환합니다. 이 인수를 지정하면 로그 오즈가 확률(probabilities)로 변환됩니다.
로지스틱 회귀 모델은 결과의 확률을 추정하므로, 그 확률이 행동으로 이어진다고 판단할 임계값(threshold)은 사용자가 결정해야 합니다. 지나치게 조심스러움과 지나치게 공격적임 사이의 균형이 중요합니다. 예를 들어 기부 확률이 99% 이상인 사람에게만 요청한다면, 추정 확률은 낮지만 실제로는 기부할 많은 사람을 놓칠 수 있습니다. 특히 이 데이터셋처럼 기부가 상대적으로 드문, 심하게 불균형한 결과에서는 이 균형을 더욱 신중히 고려해야 합니다.
데이터셋 donors와 모델 donation_model이 제공되어 있습니다.
이 연습은 강의의 일부입니다
R로 배우는 Supervised Learning: 분류
연습 안내
predict()함수를 사용해 각 사람의 기부 확률을 추정하세요. 확률을 얻도록type인수를 지정하세요. 예측값은donation_prob라는 새 열에 할당하세요.donors데이터 프레임에서 적절한 열을mean()함수에 전달해 평균적인 사람이 기부할 실제 확률을 구하세요.- 예측한 기부 확률이 평균보다 크면 기부한다고 예측하도록
ifelse()를 사용하세요. 예측값은donation_pred라는 새 열에 할당하세요. mean()함수를 사용해 모델의 정확도를 계산하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Estimate the donation probability
donors$donation_prob <- predict(___, type = "___")
# Find the donation probability of the average prospect
mean(___)
# Predict a donation if probability of donation is greater than average (0.0504)
donors$donation_pred <- ifelse(___ > 0.0504, ___, ___)
# Calculate the model's accuracy
mean(___ == ___)