## 3 Experimental section  
### General information  
All calculations were performed on an AMD Athlon XP 3000+ personal computer running Microsoft Windows XP SP3 operating system. The programs were in-house scripts written in MATLAB version 7.5, except for the analysis of variance (ANOVA), SVM, and RF. ANOVA was performed in Microsoft Excel version 12.0. The SVM calculations were performed by the LIBSVM software version 2.89 with MATLAB interface [18]. The RF program was obtained from reference [19]. The training of RBFCCN was implemented through fminbnd and fminunc functions by their default parameters from the optimization toolbox version 3.1.2 of MATLAB. The fminunc function uses the Broyden-Fletcher-Goldfarb-Shanno (BFGS) quasi-Newton method with a cubic line search procedure. The fminbnd function is based on golden section search and parabolic interpolation algorithm. In the RBFCCN, RBFN, and SCRBFN, the weights of the output neurons were updated by the SVD algorithm. The SVD algorithm was implemented by the MATLAB function pinv. All ANNs and PLS-DA applied binary coding for determine the classes from the outputs. Instead of training neural networks to achieve the minimum error of an external validation set, all the neural networks (the BNNs, SCRBFNs, RBFNs, and RBFCCNs) compared in this work were trained to a given RRMSEC in each data set. All the neural networks and PLS-DA applied the binary coding method to set the training target value, and the method to identify the class membership stated above. The BNNs used in this work consists of three layers: one input layer, one hidden layer and one output layer. The sigmoid neuron was used in the hidden layer, and the output layer was linear. The two-stage training method of RBFN was applied. The centroids and radii of RBFN were initialized by the K-means clustering, and optimized by back-propagation. The centroid of the \(k\)th hidden neuron \(\boldsymbol{\upmu}_{k}\) was initialized by the mean of the objects in the \(k\)th cluster, and the radius of the \(k\)th hidden neuron \(\sigma_{k}\) was initialized by:  
\[\sigma_{k}=\left(\sum_{q=1}^{3}\left\|\boldsymbol{\upmu}_{k}-\boldsymbol{\upmu} _{q}\right\|^{2}\right)\Bigg{/}\sqrt{3} \tag{8}\]  
for which \(\boldsymbol{\upmu}_{q}\) is the three nearest neighbors of \(\boldsymbol{\upmu}_{k}\). The details of this method are described in reference [20]. In the SCRBFNs, the parameter \(\lambda\) in the linear averaging clustering algorithm was adjusted gradually to achieve the RRMSEC. For the RBFN model, the number of hidden neurons \(h\) equals to the number of training classes. For the BNN model, \(h\) is empirically proposed by:  
\[h=\left\{ \begin{array}{ll}n&(l\leq n)\\ \text{round}((l+n)/2)&(l>n)\end{array} \right. \tag{9}\]  
for which \(l\) denotes the number of variables of the data set, \(n\) denotes the number of classes of the training object, and round denotes round to the closest integer. Because two synthetic data sets were relatively simple in data size that have less variables and classes, \(h\) was fixed without further evaluations. To demonstrate the numbers of hidden neurons was appropriate, independent tests were performed by evaluating BNNs on two chemical data sets with \(0.5h\) and \(2h\) hidden neurons so that the network performances can be observed by significantly decreasing or increasing the hidden layer size. Table 1 gives the average prediction accuracies of the BNN models of Italian olive oil and the training set of the PCB data set. For the Italian olive oil data set, the BNN models with 7 and 14 hidden neurons did not significantly differ with respect to prediction accuracy. The BNN models with four hidden neurons had too few hidden units to model the data sufficiently. For the PCB dataset, the effect of the three different numbers of hidden neurons on the prediction results was not significant. The BNNs with extra hidden neurons will not overfit the data if trained to the same RRMSEC. As a result, the heuristic equation of \(h\) was appropriate.