r - 混淆矩阵错误:错误:`data`和`reference`应该是具有相同水平的因素
问题描述
我目前正在尝试构建一个神经网络来预测数据中人们的排名。
等级系统为:A、B、C、D、E
一切都运行得非常顺利,直到我得到我的混淆矩阵。我收到错误“错误:data
并且reference
应该是具有相同级别的因素。”。我在其他帖子上尝试了许多不同的方法,但似乎都没有奏效。
NNPredicitions 和 test$Rank 中的级别都相同。我用 table() 检查了它们。
library(readxl)
library(caret)
library(neuralnet)
library(forecast)
library(tidyverse)
library(ggplot2)
Indirect <-read_excel("C:/Users/Abdulazizs/Desktop/Projects/Indirect/FIltered Indirect.xlsx",
n_max = 500)
Indirect$Direct_or_Indirect <- NULL
Indirect$parentaccount <- NULL
sum(is.na(Indirect))
counts <- table(Indirect$Rank)
barplot(counts)
summary(counts)
part2 <- createDataPartition(Indirect$Rank, times = 1, p = .8, list = FALSE, groups = min(5, length(Indirect$Rank)))
train <- Indirect[part2, ]
test <- Indirect[-part2, ]
set.seed(1234)
TrainingParameters <- trainControl(method = "repeatedcv", number = 10, repeats=10)
as.data.frame(train)
as.data.frame(test)
NNModel <- train(train[,-7], train$Rank,
method = "nnet",
trControl= TrainingParameters,
preProcess=c("scale","center"),
na.action = na.omit
)
NNPredictions <-predict(NNModel, test, type = "raw")
summary(NNPredictions)
confusionMatrix(NNPredictions, test$Rank)
长度(NNPredictions) 长度(测试$Rank)
长度(NNPredictions)[1] 98 长度(测试$Rank)[1] 98
表(NNPredictions,test$Rank,useNA="ifany")NNPredictions ABCDE A 1 0 0 0 0 B 0 6 0 0 0 C 0 0 11 0 0 D 0 0 0 18 0 E 0 0 0 0 62
解决方案
还将方法=“概率”更改为方法=“原始”
表 1 <- 表(NNPredictions,test$Rank,useNA = “ifany”)
cnf1 <-混淆矩阵(表1)
由 dclarson 提供的回答
推荐阅读
- java - 如何在 Java 中运行动态 mongo 查询
- python - 在zap中的Python代码步骤中出现语法错误
- javascript - 数组对象处理需要使用 JavaScript 的数组对象中存在所有 Id 的数组
- spring-boot - Spring Security oAuth2 出现未经授权的错误
- javascript - 导出 NextJS 站点正在破坏路由
- kdbg - 如何使用 kdbg 在 64 位系统中调试 32 位可执行文件?
- c# - 从转发邮件项中查找源邮件项
- html - 当高度约为 10 像素时,SVG 和输入标签会被轻推
- php - 登录时查看公司状态
- javascript - 使用 for 循环将文档添加到 Firestore