我是新用户 . 我得到了一个错误的插入包我无法解释 .
我的实验由对8个变量和3个类别的305个观察结果组成 . 我想训练一个模型(这里是一个神经网络),然后预测一组观察的类,每个类的概率 . 由于我想尝试几种型号,我想使用'插入'包 .
运行以下脚本时,R在尝试预测时停止并显示以下错误:
Error in dimnames(out)[[2]] <- rev(modelFit$obsLevels) :
la longueur de 'dimnames' [2] n'est pas égale à l'étendue du tableau
De plus : Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
My Test对象包含14个观察值,需要8个变量 . 任何集合中都没有丢失的数据 .
有人可以帮忙吗?
提前谢谢了 !吕克
脚本:
library(nnet)
library(caret)
Vars <- read.csv('/home/moumou/ter/Lit.csv',header=FALSE)
Clas <- read.csv('/home/moumou/ter/Lot.csv',header=FALSE)
Test <- read.csv('/home/moumou/ter/Lie.csv',header=FALSE)
colnames(Vars) <- paste('col',1:ncol(Vars),sep='')
colnames(Clas) <- paste('cls',1:ncol(Clas),sep='')
colnames(Test) <- paste('col',1:ncol(Test),sep='')
dt1 <- data.frame(Clas,Vars)
summary(dt1)
dt2 <- as.data.frame(Test)
summary(dt2)
model <- train(cls1 + cls2 + cls3 ~ col1 + col2 + col3 + col4 + col5 + col6 + col7 + col8 , data = dt1, method='nnet')
pred <- predict(model,newdata=dt2,type='prob')
1 回答
这是有效的代码:
所以你的代码有几个问题 . 组合时似乎是类变量(cls1 cls2 cls3)实际上是数字,所以不是分类而是进行回归 . 而type =“prob”仅用于分类 .
其次,我必须在类变量值前添加v才能获得概率 . 请检查this问题上接受的答案 .