I have a binary classification problem for financial ratios and variables. When I use newff (with trainlm and mse and threshold of 0.5 for output) I have a high classification accuracy (5-fold cross validation – near 89-92%) but when I use patternnet (trainscg with crossentropy) my accuracy is 10% lower than newff. (I normalized data before insert it to network - mapminmax or mapstd)
When I use these models for out-sample data (for current year- created models designed based one previous year(s) data sets) I have better classification accuracies in patternnet with better sensitivity and specificity. For example I have these results in my problem:
#Newff:#
Accuracy: 92.8% sensitivity: 94.08% specificity: 91.62%
Out sample results: accuracy: 60% sensitivity: 48% and specificity: 65.57%
#Patternnet:
Accuracy: 73.31% sensitivity: 69.85% specificity: 76.77%
Out sample results: accuracy: 70% sensitivity: 62.79% and specificity: 73.77%
Why we have these differences between newff and patternent. Which model should I use?
Thanks.
PS.
I have an optimization algorithm that optimize numbers of neurons and early stopping (stopping after X). Besides it I use 5-fold cross validation in every iteration of optimization algorithm. As @usεr11852 said I have over fitting besides that I’m using early stopping? What is your idea about checking Bayesian regularization with “patternnet”? I have another problem in my system. The best output of optimization algorithm based on best classification accuracy results maximum early stopping that I had set for early stopping limitations. Why?