Как создать матрицу путаницы в R (шаг за шагом)

Как создать матрицу путаницы в 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. seed (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() из пакета каретки , чтобы

#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% для этой модели.

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.