R 神经网络 - 鸢尾花数据集混淆矩阵
Posted
技术标签:
【中文标题】R 神经网络 - 鸢尾花数据集混淆矩阵【英文标题】:R Neural Networks - Iris Dataset Confusion Matrix 【发布时间】:2015-06-12 16:36:24 【问题描述】:我不知道如何计算以下内容: 1. 它预测了哪 30 个元素? 2. 我无法让 ConfusionMatrix 工作。
任何帮助表示赞赏。谢谢。
library(nnet)
attach(iris)
library(caret)
set.seed(3456)
trainIndex <- createDataPartition(iris$Species, p = .8,
list = F,
times = 1)
irisTrain <- iris[ trainIndex,]
irisTest <- iris[-trainIndex,]
irispred <- nnet(Species ~ ., data=irisTrain, size=10)
predicted <- predict(irispred,irisTest,type="class")
输出:
预测
预测 [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" [8] "setosa" "setosa" "setosa" "versicolor" "versicolor" "versicolor" "versicolor" [15] "versicolor" "versicolor" "virginica" "versicolor" "versicolor" "versicolor" "virginica" [22] “处女座” “处女座” “处女座” “处女座” “处女座” “处女座” “处女座” [29] “处女座”“处女座”
混淆矩阵错误,不确定第二个参数应该是什么:
confusionMatrix(预测的, iris$Species) 表中的错误(数据,参考,dnn = dnn,...): 所有参数的长度必须相同
confusionMatrix(预测,irisTest,正=1) sort.list(y) 中的错误:对于“sort.list”,“x”必须是原子的 您是否在列表中调用了“排序”? 混淆矩阵(预测,虹膜,正= 1) sort.list(y) 中的错误:对于“sort.list”,“x”必须是原子的 您是否在列表中调用了“排序”?
【问题讨论】:
【参考方案1】:第二个参数应该是irisTest$Species
中的引用类。 irisTest
是包含所有其他列的完整测试数据,iris$Species
是整个数据的物种,而不仅仅是测试集。
> confusionMatrix(data = predicted, reference = irisTest$Species)
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 10 0 0
versicolor 0 9 0
virginica 0 1 10
Overall Statistics
Accuracy : 0.9667
[...]
【讨论】:
非常感谢。我想我们无法分辨它预测的是哪 30 个物种?我想在预测集和测试集之间进行比较,但似乎看不到任何匹配项,还是我比较错误。 当您打印predicted
时,预测的类已经在您的答案中。然后你只需要将它们与irisTest$Species
进行比较。例如data.frame(predicted, irisTest$Species)
感谢您的帮助。非常感激。您是否尝试过使用 to plot.nnet ? --- 我不知道如何解决这个错误:plot.nnet(predicted) if (is.na(hid.struct[i + 1])) break 中的错误:参数长度为零另外:警告消息:在 is.na(hid.struct[i + 1]) 中:is.na() 应用于 'NULL' 类型的非(列表或向量)
我不知道plot.nnet
函数来自哪里。如果它来自this blog post,您需要按照那里描述的步骤从 Github 安装该功能。在任何情况下,您都必须绘制 模型对象 irispred
而不是数字向量 predicted
。
PS:我的意思是你必须按照那里描述的程序来绘制模型(因为你显然已经安装了这个函数)。以上是关于R 神经网络 - 鸢尾花数据集混淆矩阵的主要内容,如果未能解决你的问题,请参考以下文章
混淆矩阵是什么?Python多分类的混淆矩阵计算及可视化(包含原始混淆矩阵及归一化的混淆矩阵):基于skelarn框架iris数据集
R语言使用caret包的predict函数对模型在测试集上的表现进行推理和预测计算模型的混淆矩阵设置参数mode计算基于混淆矩阵产生的衍生指标(特异度敏感度F1ppvnpv等)