Как создать матрицу путаницы в r (шаг за шагом)
Логистическая регрессия — это тип регрессии, который мы можем использовать, когда переменная ответа является двоичной.
Распространенный способ оценить качество модели логистической регрессии — создать матрицу путаницы , которая представляет собой таблицу 2 × 2, в которой показаны прогнозируемые значения модели в сравнении с фактическими значениями тестового набора данных.
В следующем пошаговом примере показано, как создать матрицу путаницы в R.
Шаг 1. Подберите модель логистической регрессии
В этом примере мы будем использовать набор данных по умолчанию из пакета ISLR . Мы будем использовать статус студента, банковский баланс и годовой доход, чтобы предсказать вероятность того, что данный человек не сможет выплатить свой кредит.
Следующий код показывает, как подогнать модель логистической регрессии к этому набору данных:
#load necessary packages library (caret) library (InformationValue) library (ISLR) #load dataset data <-Default #split dataset into training and testing set set. seeds (1) sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE , prob=c(0.7,0.3)) train <- data[sample, ] test <- data[!sample, ] #fit logistic regression model model <- glm(default~student+balance+income, family=" binomial ", data=train)
Шаг 2. Создайте матрицу путаницы
Далее мы воспользуемся функцией путаницыMatrix() из пакета Caret , чтобы создать матрицу путаницы:
#use model to predict probability of default
predicted <- predict(model, test, type="response")
#convert defaults from "Yes" and "No" to 1's and 0's
test$default <- ifelse(test$default==" Yes ", 1, 0)
#find optimal cutoff probability to use to maximize accuracy
optimal <- optimalCutoff(test$default, predicted)[1]
#create confusion matrix
confusionMatrix(test$default, predicted)
0 1
0 2912 64
1 21 39
Шаг 3. Оцените матрицу путаницы
Мы также можем рассчитать следующие показатели, используя матрицу путаницы:
- Чувствительность: «истинный уровень позитивности» — процент людей, которые, как правильно предсказывала модель, совершили дефолт.
- Специфика: «истинно отрицательный показатель» — процент людей, которые, правильно предсказанная моделью, не объявят дефолт.
- Общий коэффициент ошибочной классификации: процент от общего числа ошибочных классификаций, допущенных моделью.
Следующий код показывает, как вычислить эти метрики:
#calculate sensitivity
sensitivity(test$default, predicted)
[1] 0.3786408
#calculate specificity
specificity(test$default, predicted)
[1] 0.9928401
#calculate total misclassification error rate
misClassError(test$default, predicted, threshold =optimal)
[1] 0.027
Общая частота ошибок классификации для этой модели составляет 2,7% .
В целом, чем ниже этот показатель, тем лучше модель способна предсказать результаты. Таким образом, эта конкретная модель оказывается очень эффективной для прогнозирования того, объявит ли человек дефолт или нет.