R plot.nn中出错:未计算权重

R plot.nn中出错:未计算权重,r,machine-learning,neural-network,R,Machine Learning,Neural Network,我在尝试绘制神经网络时收到一条错误消息。我一开始能够很好地运行代码,然后它就停止了。运行neuralnet()函数时,我没有收到错误消息。任何帮助都将不胜感激。我预测贷款违约 library(neuralnet) library(plyr) CreditCardnn <- read.csv("https://raw.githubusercontent.com/621-Group2/Final-Project/master/UCI_Credit_Card.csv") #Normaliz

我在尝试绘制神经网络时收到一条错误消息。我一开始能够很好地运行代码,然后它就停止了。运行neuralnet()函数时,我没有收到错误消息。任何帮助都将不胜感激。我预测贷款违约

library(neuralnet)
library(plyr)

CreditCardnn <- read.csv("https://raw.githubusercontent.com/621-Group2/Final-Project/master/UCI_Credit_Card.csv")


#Normalize dataset
maxValue <- apply(CreditCardnn, 2, max)
minValue <- apply(CreditCardnn, 2, min)

CreditCardnn <- as.data.frame(scale(CreditCardnn, center = minValue, scale = maxValue - minValue))

#Rename to target variable
colnames(CreditCardnn)[25] <- "target"


smp <- floor(0.70 * nrow(CreditCardnn))
set.seed(4784)

CreditCardnn$ID <- NULL
train_index <- sample(seq_len(nrow(CreditCardnn)), size = smp, replace = FALSE)

train_nn <- CreditCardnn[train_index, ]
test_nn <- CreditCardnn[-train_index, ]

allVars <- colnames(CreditCardnn)
predictorVars <- allVars[!allVars%in%'target']
predictorVars <- paste(predictorVars, collapse = "+")
f <- as.formula(paste("target~", predictorVars, collapse = "+"))

nueralModel <- neuralnet(formula = f, hidden = c(4,2), linear.output = T, data = train_nn)

plot(nueralModel)

在报告错误之前,您很可能还收到了一条警告:

仔细观察你的代码和数据,发现问题在于你在拟合神经网络时选择了
linear.output=T
;从:

线性。输出逻辑。如果act.fct不应用于输出神经元,则将线性输出设置为TRUE,否则设置为FALSE

在神经网络的最后一层保持线性输出通常仅用于回归设置;在分类设置中,如您的分类设置中,正确的选择是将激活功能应用于输出神经元。因此,尝试与您相同的代码,但使用
linear.output=F
,我们得到:

> nueralModel <- neuralnet(formula = f, hidden = c(4,2), linear.output = F, data = train_nn) # no warning this time
> plot(nueralModel)
>nueralModel绘图(nueralModel)
下面是
绘图的结果


尝试增加步长最大值。例如,设置stepmax=1e6或更高。使用更高的stepmax需要更长的时间,但您可以尝试:


我没有得到那个警告。谢谢
# your data preparation code verbatim here
> nueralModel <- neuralnet(formula = f, hidden = c(4,2), linear.output = T, data = train_nn)
Warning message:
algorithm did not converge in 1 of 1 repetition(s) within the stepmax 
> plot(nueralModel)
Error in plot.nn(nueralModel) : weights were not calculated
> nueralModel <- neuralnet(formula = f, hidden = c(4,2), linear.output = F, data = train_nn) # no warning this time
> plot(nueralModel)