Як створити матрицю плутанини в 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: Створіть матрицю плутанини

Далі ми скористаємося функцією confusionMatrix() із пакету каретки , щоб створити матрицю плутанини:

 #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% для цієї моделі.

Загалом, чим нижчий цей показник, тим краще модель здатна передбачити результати. Таким чином, ця конкретна модель виявляється дуже ефективною для прогнозування того, чи буде особа дефолт чи ні.

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *