MLP模型中的警告(Caret,RSNNS包)

时间:2017-05-07 13:20:22

标签: r neural-network r-caret

我正在通过R中的插入符包运行多层感知模型。代码是:

LR_fitcontrol <- trainControl(method='cv',
                              number=2,
                              classProbs = T,
                              summaryFunction = twoClassSummary,
                              savePredictions = T)
Sys.time()

para.grid <-data.frame(size= c(10))
KNN_fit <- train(LR_formula_tune,data=model_data_Classification,
                 method="mlp",
                 metric='ROC',
                 preProc = c('center','scale'),
                 tuneGrid = para.grid,
                 trControl= LR_fitcontrol
)

我收到的警告。

1: In snnsObject$setUnitName(num, iNames[[i]]) :
  SNNS error message in setUnitName : SNNS-Kernel Error: Symbol pattern invalid (must match [A-Za-z][^|, ]*)

有16个类似的警告。

我通过插入符号在此数据集上运行了许多其他模型,如RF,KNN,Logistic,Naive Bayes。所以我想这个数据集很好。

当然,我用Google搜索了这个错误,根本没有类似的结果。我认为需要一些帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。正如警告告诉您使用的符号有问题。就我而言,它是一个名为'03Prüfen'的因子级别。为了避免警告,我将因子级别更改为“03Pruefen”,这解决了问题。所以你应该避免像'äöü'等特殊字符。检查您的数据。由于我不知道您的数据是什么样的,我无法告诉您问题究竟在哪里。

工作示例:

library(caret)
library(RSNNS)
data(iris) #load example-data
iris$ExampleFeature <- as.factor(c(rep("01Blümchen", 50), rep("02Blume", 50), rep("03Blöme", 50))) #add factor with problematic factor level names

# Define trainControl #
control <- trainControl(method='cv',
                        number=2,
                        classProbs = TRUE,
                        savePredictions = "final")

# Start training which will create warnings #
KNN_fit <- train(Species~.,
                 data=iris,
                 method="mlp",
                 metric='Accuracy',
                 preProc=c('center','scale'),
                 trControl=control
)

# Change factor level names and re-run training #
levels(iris$ExampleFeature) <- c("01Bluemchen","02Blume","03Bloeme")

KNN_fit <- train(Species~.,
                 data=iris,
                 method="mlp",
                 metric='Accuracy',
                 preProc=c('center','scale'),
                 trControl=control
)

此外:当我在带有RStudio的Windows笔记本电脑上运行代码时,不会发出警告。它只出现在我在CentOS上运行的RStudio-Server上。