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?