使用 R 在 keras 中为多类分类创建混淆矩阵
Posted
技术标签:
【中文标题】使用 R 在 keras 中为多类分类创建混淆矩阵【英文标题】:Creating a confusion matrix for multiclass classification in keras using R 【发布时间】:2021-10-30 00:54:24 【问题描述】:我正在使用 Keras 在 R 中为多类文本分类运行双向 LSTM。我已经运行了我的模型,我需要创建一个混淆矩阵。我尝试使用 predict_classes() 但我的 RStudio 抛出了一个错误,即 predict_classes() 已被弃用。我尝试使用在 RStudio Keras 网站上找到的这段代码:
prediction1 <- model %>%
predict(x.test) %>%
k_argmax(axis = -1)
注意:x.test 是我的包含文本特征的矩阵。
我不知道如何使用它 + 我还没有找到任何在线使用它的示例,所以我很困惑。任何人都可以提供任何帮助,我将不胜感激!
谢谢
【问题讨论】:
【参考方案1】:您可以使用'caret'
库来实现。
#Install required packages
install.packages('caret')
#Import required library
library(caret)
#Creates vectors having data points
expected_value <- factor(c(1,0,1,0,1,1,1,0,0,1))
predicted_value <- factor(c(1,0,0,1,1,1,0,0,0,1))
#Creating confusion matrix
example <- confusionMatrix(data=predicted_value, reference = expected_value)
#Display results
example
或者table
函数:
pred <- model %>% predict(x_test, batch_size = batch_size)
y_pred = round(pred)
# Confusion matrix
confusion_matrix = table(y_pred, y_test)
对于“插入符号”示例:
https://www.journaldev.com/46732/confusion-matrix-in-r
【讨论】:
感谢您的建议。我尝试了提到的方法,但它给了我一个只有 0 和 1 的二进制混淆矩阵。我有 7 个不同的级别,所以我不确定如何实现这一目标 在这个这里:***.com/questions/25497398/…,我可以看到 OP 也转换了多类分类。 不同之处在于,每个矩阵中没有声明“FP”或“FN”,但您可以像这样推断它们(主对角线上方是 FP,主对角线下方是 FN) / 第二个带表的方法应该更容易。 我现在就要试试!我会更新你的!!以上是关于使用 R 在 keras 中为多类分类创建混淆矩阵的主要内容,如果未能解决你的问题,请参考以下文章
为多类分类python tensorflow keras设置偏差