如何在 r 中创建混淆矩阵(逐步)


逻辑回归是当响应变量是二元时我们可以使用的一种回归。

评估逻辑回归模型质量的常见方法是创建一个混淆矩阵,它是一个 2 × 2 的表,显示模型的预测值与测试数据集的实际值。

以下分步示例展示了如何在 R 中创建混淆矩阵。

步骤一:拟合逻辑回归模型

对于此示例,我们将使用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 步:创建混淆矩阵

接下来,我们将使用caret包中的fusionMatrix()函数来创建混淆矩阵:

 #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%

一般来说,该比率越低,模型预测结果的能力就越好。因此,这个特定的模型在预测个人是否会违约方面被证明非常有效。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注