首页 > 解决方案 > 使用 multinom() 输出插入符号序列并评估模型稳定性

问题描述

我想建立一个多项逻辑回归模型来预测类。为了确保模型的预测能力不会因新数据而偏离,我尝试通过caret包使用重复的交叉验证程序。我无法理解我应该如何解释输出。我拥有的数据非常大,因此出于可重复性的目的,我以iris数据集为例。代码如下

library(caret)
library(nnet)

iris_data <- iris

## Base Class against which log odds are calculated
iris_data$Species <- relevel(iris_data$Species,ref='setosa')
train_control <- trainControl(method='repeatedcv',number=10,repeats = 10,verboseIter = TRUE)

model_cv <- caret::train(Species~.,data=iris_data,trControl=train_control,
                         method='multinom')

上面的代码导致 100 次交叉验证迭代(10 倍交叉验证重复 10 次),以下是输出之一。

- Fold10.Rep10: decay=1e-04 
Aggregating results
Selecting tuning parameters
Fitting decay = 0.1 on full training set
# weights:  18 (10 variable)
initial  value 164.791843 
iter  10 value 29.291910
iter  20 value 26.055889
iter  30 value 26.039352
iter  30 value 26.039352
iter  30 value 26.039352
final  value 26.039352 
converged

我无法理解输出的value含义。这是残留偏差吗?

模型稳定性

为了评估模型的稳定性,我使用了model_cv$resample给出以下结果的命令。(截断)。是否应该通过查看准确性分数的偏差来评估模型稳定性?还是我错过了 中的关键功能caret?先感谢您!

    Accuracy Kappa     Resample
1  0.9333333   0.9 Fold04.Rep02
2  1.0000000   1.0 Fold03.Rep02
3  0.9333333   0.9 Fold02.Rep02
4  0.9333333   0.9 Fold05.Rep02
5  1.0000000   1.0 Fold01.Rep02
6  1.0000000   1.0 Fold10.Rep01
7  1.0000000   1.0 Fold06.Rep02
8  1.0000000   1.0 Fold03.Rep01
9  1.0000000   1.0 Fold08.Rep01
10 1.0000000   1.0 Fold07.Rep02

标签: rmachine-learningr-caret

解决方案


推荐阅读