R语言 使用Caret包可视化混淆矩阵
在这篇文章中,我们将使用R编程语言中的Caret包来实现混淆矩阵的可视化。
混淆矩阵是一种类型的矩阵,用于可视化预测值和实际值。混淆矩阵中的行头代表预测值,列头用来代表实际值。混淆矩阵包含四个单元,如下图所示。
混淆矩阵
- 真负值 - 表示有多少负值被模型预测为负值。
-
假阳性 - 表明有多少负值被模型预测为阳性值。
-
假阴性 - 表示有多少正值被模型预测为负值。
-
真阳性 - 表明有多少阳性值被模型预测为阳性。
confusionMatrix()函数
在R编程中,混淆矩阵可以通过caret包中的confusionMatrix()函数来实现可视化。
语法: confusionMatrix(data, reference, positive = NULL, dnn = c(“Prediction”, “Reference”)
其中
- data – 预测类的一个因子。
- reference – 一个作为真实结果的类的因子。
- positive(可选) -- 一个可选的因子级别的字符串。
- dnn(可选) – 表的dimnames的一个字符向量。
使用confusionMatrix()函数在R中可视化混淆矩阵。
第1步: 首先我们需要安装和加载所需的软件包。在R中运行以下命令来安装 “caret “包。
# Install the required package
install.packages("caret")
第2步:接下来我们需要初始化我们的预测和实际数据。在我们的例子中,我们将使用两个因子来代表预测值和实际值。
# Load the installed package
library(caret)
# Initialization of Sample factors
# of predicted and actual values
pred_values <- factor(c(TRUE,FALSE,
FALSE,TRUE,FALSE,TRUE,FALSE))
actual_values<- factor(c(FALSE,FALSE,
TRUE,TRUE,FALSE,TRUE,TRUE))
第3步: 随后使用caret包的confusionMatrix(),我们将找到并可视化混淆矩阵。
# Confusion Matrix
cf <- caret::confusionMatrix(data=pred_values,
reference=actual_values)
print(cf)
解释: 运行上述代码后,我们将得到以下混淆矩阵的输出,利用它我们可以直观地看到预测值和实际值的数据,我们可以看到输出中有两个 “真阳性”、”真阴性”、”假阴性 “和一个 “假阴性”。正如我们在 “pred_values “和 “actual_values “的数据框中给出的那样。
输出
混淆矩阵输出
使用fourfoldplot()函数将混淆矩阵可视化。
混淆矩阵也可以使用R中内置的fourfoldplot()函数来绘制。fourfoldplot()函数只接受数组类型的对象,但在默认情况下,caret包将产生一个矩阵类型的混淆矩阵。因此,我们需要使用as.table()函数将矩阵转换为表格。
语法:fourfoldplot(x,color,main)
其中
- x – 大小为2X2的数组或表格
- color – 长度为2的向量,指定对角线的颜色
- main – 要添加到四折图中的标题
# Visualizing Confusion Matrix
fourfoldplot(as.table(cf),color=c("green","red"),main = "Confusion Matrix")
输出