Как создать матрицу путаницы в 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% .

В целом, чем ниже этот показатель, тем лучше модель способна предсказать результаты. Таким образом, эта конкретная модель оказывается очень эффективной для прогнозирования того, объявит ли человек дефолт или нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *