Abstract:
a method for improving stacking schema for classification tasks, according to which predictive models are built, based on stacked-generalization meta-classifiers. Classifications are combined to build a new scheme from at least two layers and multiclass classification problems are converted into binary classification problems. One-against-all class binarization and regression learners are used for each class model and ensemble classifiers are improved using stacking. Accuracy differences, accuracy ratio, and runtime classification in multiclass datasets are also improved and the class of a value is then predicted.

Description:
FIELD OF THE INVENTION 
       [0001]    The field of the present invention is related to data analysis and more particularly to a predictive model by integrating multiple models. 
       BACKGROUND OF THE INVENTION 
       [0002]    A classifier is a classification model which assigns an unclassified instance to a predefined set of classes. The classifier may be induced by using a learning algorithm (also known as an inducer), such as C4.5 [Quinlan, R. (1993).  C 4.5 : “Programs for Machine Learning”. Machine Learning,  235-240.] or SVM [Boser, B. E., Guyon, I. M. &amp; Vapnik, V. N. (1992): “A training algorithm for optimal margin classifiers”, 5th Annual ACM (pp. 144-152). ACM Press, Pittsburgh, Pa.]. Ensemble methodology considers combining multiple classifiers to work collectively, in order to compensate each other&#39;s weaknesses and to generate better classifications through some kind of fusion strategy. 
         [0003]    Meta-learning is a process of learning from learners (also called hereinafter classifiers). The training of a meta-classifier is composed of two or more stages, rather than one stage, as with standard learners. In order to induce a meta classifier, first the base classifiers are trained, and then the Meta classifier is trained. In the prediction phase, base classifiers will output their classifications, and then the Meta-classifier(s) will make the final classification (as a function of the base classifiers). 
         [0004]    Stacking is a technique for inducing which classifiers are reliable and which are not. Stacking is usually employed to combine models built by different inducers. The idea is to create a meta-dataset containing a tuple (an ordered set of values) for each tuple in the original dataset. However, instead of using the original input attributes, it uses the classifications predicted by the classifiers as the input attributes. The target attribute remains as in the original training set. A test instance is first classified by each of the base classifiers. These classifications are fed into a meta-level training set from which a meta-classifier is produced. 
         [0005]    This classifier (also denoted Meta-classifier) combines the different predictions into a final one. It is recommended that the original dataset should be partitioned into two subsets. The first subset is reserved to form the meta-dataset and the second subset is used to build the base-level classifiers. Consequently, the meta-classifier predications reflect the true performance of base-level learning algorithms. Stacking performance can be improved by using output probabilities for every class label from the base-level classifiers. It has been shown that with stacking, the ensemble performs (at best) comparably to selecting the best classifier from the ensemble by cross validation [Dzeroski S., Zenko B. (2004): “Is Combining Classifiers with Stacking Better than Selecting the Best One?” Machine Learning 54(3), (pp. 255-273).]. 
         [0006]    StackingC is a Stacking variation. In empirical tests Stacking showed significant performance degradation for multi-class datasets. StackingC was designed to address this problem. In StackingC, each base classifier outputs only one class probability prediction [Seewald A. K. (2003): “Towards understanding stacking—Studies of a general ensemble learning scheme”, PhD-Thesis, T U Wien.]. Each base classifier is trained and tested upon one particular class while stacking output probabilities for all classes and from all component classifiers.  FIGS. 1 to 4  show an illustration of Stacking and StackingC on a dataset with three classes (a, b and c), n examples, and N base classifiers. P i,j,k  refers to the probability given by base classifier i for class j on example number k. 
         [0007]      FIG. 1  shows an example with three classes (a, b and c), n examples, and N base classifiers. It shows the original training set with its attribute vectors and class values.  FIG. 2  shows how a class probability distribution of one sensible classifier may appear. The maximum probabilities are shown in italics and denote the classes which would be predicted for each example. There is one such set of class probability distributions for each base classifier.  FIG. 3  shows the Meta training set for Stacking which is used to learn a Meta classifier that predicts the probability that class=a. P i,j,k  denotes the probability given by the base classifier i for class j on example number k. The classes are mapped to an indicator variable such that only class “a” is mapped to 1, and all other classes are mapped to 0. In this example, there are, of course, two other such training sets for class b and c which differ only in the last column and are thus not shown. 
         [0008]      FIG. 4  shows the corresponding Meta training set for StackingC which consists only of those columns from the original meta training set which are concerned with class=Cα, i.e., P i, j, k  for all i, j and k. While the Meta training sets for Stacking&#39;s Meta classifier differ only in the last attribute (the class indicator variable), those for StackingC have fewer attributes by a factor equal to the number of classes and also have no common attributes. This necessarily leads to more diverse linear models, which [Seewald A. K. (2003): “Towards understanding stacking—Studies of a general ensemble learning scheme”, PhD-Thesis, TU Wien.] believes to be one mechanism by which it outperforms Stacking. Another reason may simply be that with fewer attributes, the learning problem becomes easier to solve, provided only irrelevant information is removed. The dimensionality of the Meta dataset is reduced by a factor equal to the number of classes, which leads to faster learning. In comparison to other ensemble learning methods this improves Stacking&#39;s advantage further, making it the most successful system by a variety of measures. 
         [0009]    StackingC improves on Stacking in terms of significant accuracy differences, accuracy ratios, and runtime. These improvements are more evident for multi-class datasets and have a tendency to become more pronounced as the number of classes increases. StackingC also resolves the weakness of Stacking in the extension proposed by Ting and Witten in [Ting, K. M., Witten, I. H. (1999): Issues in stacked generalization. Journal of Artificial Intelligence Research 10, pages 271-289.] and offers a balanced performance on two-class and multi-class datasets. 
         [0010]    Seewald in [Seewald A. K. (2003): “Towards understanding stacking—Studies of a general ensemble learning scheme, PhD-Thesis, TU Wien.] has shown that all ensemble learning systems, including StackingC [Seewald, A. (2002): “How to Make Stacking Better and Faster While Also Taking Care of an Unknown Weakness”, Nineteenth International Conference on Machine Learning (pp. 554-561). Sydney: Morgan Kaufmann Publishers.], Grading [Seewald A. K. and J. Fuernkranz. (2001). An Evaluation of Grading Classifiers. Advances in Intelligent Data Analysis: 4th International Conference (pp. 115-124). Berlin/Heidelberg/New York/Tokyo: Springer.] and even Bagging [Breiman, L. (1996). Bagging predictors. Machine Learning, 123-140.] can be simulated by Stacking [Wolpert, D. (1992). Stacked Generalization. Neural Networks5, 241-259. Boser, B E., Guyon, I. M. and Vapnik, V N. (1992) A training algorithm for optimal margin classifiers. In Proceedings of the 5th Annual ACM Workshop on Computational Learning Theory ACM Press, Pittsburgh, Pa., pp. 144-152.]. To do this they give functionally equivalent definitions of most schemes as Meta-classifiers for Stacking. Dzeroski and Zenko in [Dzeroski S., Zenko B. (2004). Is Combining Classifiers with Stacking Better than Selecting the Best One? Machine Learning 54(3), (pp. 255-273).] indicated that the combination of SCANN [Merz C. J, and Murphy P. M., UCI Repository of machine learning databases. Irvine, Calif.: University of California, Department of Information and Computer Science, 1998.], which is a variant of Stacking, and MDT Ting and Witten in [Ting, K. M., Witten, I. H. (1999): Issues in stacked generalization. Journal of Artificial Intelligence Research 10, pages 271-289.] plus selecting the best base classifier using cross validation (SelectBest) seems to perform at about the same level as Stacking with Multi-linear Response (MLR). 
         [0011]    Seewald in [Seewald A. K. (2003). Towards understanding stacking—Studies of a general ensemble learning scheme. PhD-Thesis, TU Wien.] presented strong empirical evidence that Stacking in the extension proposed by Ting and Witten in [Ting, K. M., Witten, I. H. (1999): Issues in stacked generalization. Journal of Artificial Intelligence Research 10, pages 271-289.] performs worse on multi-class than on two-class datasets, for all but one meta-learner he investigated. The explanation given was that when the dataset has a higher number of classes, the dimensionality of the meta-level data is proportionally increased. This higher dimensionality makes it harder for meta-learners to induce good models, since there are more features to be considered. The increased dimensionality has two more drawbacks. First, it increases the training time of the Meta classifier; in many inducers this problem is acute. Second, it also increases the amount of memory which is used in the process of training. This may lead to insufficient resources, and therefore may limit the number of training cases (instances) from which an inducer may learn, thus damaging the accuracy of the ensemble. 
         [0012]    During the learning phase of StackingC it is essential to use one-against-all class binarization and regression learners for each class model. This class binarization is believed to be a problematic method especially when class distribution is highly non-symmetric. It has been illustrated in [Fürnkranz, J. (2002). Pairwise Classification as an Ensemble Technique. European Conference on Machine Learning (pp. 97-110). Helsinki, Finland: Austrian Research Institute for Artificial Intelligence.] that handling many classes is a major problem for the one-against-all binarization technique, possibly because the resulting binary learning problems increasingly skewed class distributions. An alternative to one-against-all class binarization is the one-against-one binarization in which the basic idea is to convert a multiple class problem into a series of two-class problems by training one classifier for each pair of classes, using only training examples of these two classes and ignoring all others. A new example is classified by submitting it to each of the 
         [0000]    
       
         
           
             
               k 
                
               
                 ( 
                 
                   k 
                   - 
                   1 
                 
                 ) 
               
             
             2 
           
         
       
     
         [0000]    binary classifiers, and combining their predictions (k, number of classes in the multiple class problem). We have found in our preliminary experiments that this binarization method yields noticeably poor accuracy results when the number of classes in the problem increases. Later, after performing a much wider and broader experiment on StackingC in conjunction with the one-against-one binarization method, we came to this same conclusion. An explanation might be that, as the number of classes in a problem increases, the greater is the chance that any of the 
         [0000]    
       
         
           
             
               k 
                
               
                 ( 
                 
                   k 
                   - 
                   1 
                 
                 ) 
               
             
             2 
           
         
       
     
         [0000]    base classifiers will give a wrong prediction. There are two reasons for this. First, when predicting the class of an instance, only out of 
         [0000]    
       
         
           
             
               k 
                
               
                 ( 
                 
                   k 
                   - 
                   1 
                 
                 ) 
               
             
             2 
           
         
       
     
         [0000]    classifiers may predict correctly. This is because only k−1 classifiers were trained on any specific class. We can see that as k increases, the percentage of classifiers which may classify correctly is decreasing, and will descend practically to zero: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       lim 
                       
                         k 
                         → 
                         ∞ 
                       
                     
                      
                     
                       
                         k 
                         - 
                         1 
                       
                       
                         
                           k 
                            
                           
                             ( 
                             
                               k 
                               - 
                               1 
                             
                             ) 
                           
                         
                         2 
                       
                     
                   
                   = 
                   
                     
                       
                         lim 
                         
                           k 
                           → 
                           ∞ 
                         
                       
                        
                       
                         2 
                         k 
                       
                     
                     = 
                     0 
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    The second reason is that in one-against-one binarization we use only instances of two classes—the instances of each one of the pair classes, while in one-against-all we use all instances, and thus the number of training instances for each base classifier in one-against-one binarization is much smaller than in the one-against-all binarization method. Thus using the one-against-one binarization method may yield inferior base classifier. 
         [0013]    There are several alternatives to decompose the multiclass problem into binary subtasks. Lorena and de Carvalho in [Lorena A. and de Carvalho A. C. P. L. F.: Evolutionary Design of Code-matrices for Multiclass Problems, Soft Computing for Knowledge Discovery and Data Mining, Springer US, 153-184, 2007] survey all popular methods. The most straightforward method to convert k class classification problems into k-two class classification problems has been proposed by Anand in [Anand R, Methrotra K, Mohan C K, Ranka S. Efficient classification for multiclass problems using modular neural networks. IEEE Trans Neural Networks, 6(1): 117-125, 1995]. Each problem considers the discrimination of one class to the other classes. Lu and Ito in [Lu B. L., Ito M., Task Decomposition and Module Combination Based on Class Relations: A Modular Neural Network for Pattern Classification, IEEE Trans. on Neural Networks, 10(5):1244-1256, 1999.] extend Anand&#39;s method and propose a new method for manipulating the data based on the class relations among the training data. By using this method, they divide a k class classification problem into a series of k(k−1)/2 two-class problems where each problem considers the discrimination of one class to each one of the other classes. The researchers used neural networks to examine this idea. A general concept aggregation algorithm called Error-Correcting Output Coding (ECOC) uses a code matrix to decompose a multi-class problem into multiple binary problems [Dietterich, T. G., and Ghulum Bakiri. Solving multiclass learning problems via error-correcting output codes. Journal of Artificial Intelligence Research, 2:263-286, 1995.]. ECOC for multi-class classification hinges on the design of the code matrix. 
         [0014]    Sivalingam et al. in [Sivalingam D., Pandian N., Ben-Arie J., Minimal Classification Method With Error-Correcting Codes For Multiclass Recognition, International Journal of Pattern Recognition and Artificial Intelligence 19(5): 663-680, 2005.] propose to transform a multiclass recognition problem into a minimal binary classification problem using the Minimal Classification Method (MCM) aided with error correcting codes. The MCM requires only log 2 k classifications because instead of separating only two classes at each classification, this method separate two groups of multiple classes. Thus the MCM requires small number of classifiers and still provide similar accuracy performance. 
         [0015]    Data-driven Error Correcting Output Coding (DECOC) [Zhoua J., Pengb H., Suenc C., Data-driven decomposition for multi-class classification, Pattern Recognition 41: 67-76, 2008.] explores the distribution of data classes and optimizes both the composition and the number of base learners to design an effective and compact code matrix. Specifically, DECOC calculate the confidence score of each base classifier based on the structural information of the training data and use sorted confidence scores to assist the determination of code matrix of ECOC. The results show that the proposed DECOC is able to deliver competitive accuracy compared with other ECOC methods, using parsimonious base learners than the pairwise coupling (one vs. one) decomposition scheme. 
         [0016]    It should be noted that finding new methods for converting multiclass classification problems into binary classification problems is not one of the goals of this paper. Still, we are using in our experimental study three different methods for this conversion. 
         [0017]    It is therefore a purpose of the present invention to provide a method and a system overcoming the limitations of the existing approaches. 
         [0018]    It is another purpose of the present invention to provide a method and a system allowing efficient classification and prediction of dataset values. 
         [0019]    It is yet another purpose of the present invention to provide a method and a system for performing efficient predictions based on data classification. 
         [0020]    Further purposes and advantages of this invention will appear as the description proceeds. 
       SUMMARY OF THE INVENTION 
       [0021]    The present invention is directed to a method for improving stacking schema for classification tasks, according to which predictive models are built, based on stacked-generalization meta-classifiers. Classifications are combined to build a new scheme from at least two layers and multiclass classification problems are converted into binary classification problems. One-against-all class binarization and regression learners are used for each class model and ensemble classifiers are improved using stacking. Accuracy differences, accuracy ratio, and runtime classification in multiclass datasets are also improved and the class of a value is then predicted. 
         [0022]    The method may combine base classifiers in the first stage, during which, all base classifiers using specialist classifiers are combined. The specialist classifier may be based on dichotomous models. 
         [0023]    An output may be a probability value, which is an input instance that belongs to a particular class. Meta-classifiers may be used during the second stage. The layer may learn the prediction characteristics of a specialist classifier, which may use at least two meta-classifiers that are combined. 
         [0024]    Each meta-classifier may be in charge of one class only. The meta-classifiers may be trained in one-against-all fashion. All the specialist classifiers may be able to classify its own class. During the third stage, a super classifier layer may be used, while producing a final prediction model. 
         [0025]    The inputs of the super classifier may be the outputs of the meta-classifiers. 
         [0026]    The super classifier may learn the conditions in which at least one meta classifier predicts correctly or incorrectly, and may output a vector of probability being the final produced decision. 
         [0027]    The present invention is also directed to a system for improving stacking schema for classification tasks, that comprises a set of distinguishable layers of continuing classifiers that are being arranged in a tandem-like order. Only one layer of combining classifiers may be used. The outputs of a layer of classifiers may be the inputs of other layers and may be prediction values. 
         [0028]    A set of prediction inputs may be combined to generate a new prediction output. A set of prediction inputs may be combined to generate a final prediction output. 
         [0029]    All the above and other characteristics and advantages of the invention will be further understood through the following illustrative and non-limitative description of preferred embodiments thereof, with reference to the appended drawings; wherein like components are designated by the same reference numerals. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]      FIG. 1  shows a table of the original training-set; 
           [0031]      FIG. 2  shows a table of a sample class probability distribution; 
           [0032]      FIG. 3  shows a table a Meta training set, Stacking; 
           [0033]      FIG. 4  shows a table a Meta training set for class a , StackingC; 
           [0034]      FIG. 5  shows the Troika architecture—showing three layers of combiners (level 1  to level 3 ) and a base classifier level (level 0 ); 
           [0035]      FIG. 6  show a schematic view of Meta classifier for class C 3 ; 
           [0036]      FIG. 7  shows an example of a pseudo-code of the main function of Troika; 
           [0037]      FIG. 8  shows an example of a pseudo-Code of Train Single Layer Function Called by the Main Procedure/Function; 
           [0038]      FIG. 9  shows the Troika&#39;s Specialist dataset for classes i and j; 
           [0039]      FIG. 10  shows the Troika&#39;s Meta dataset for class m; 
           [0040]      FIG. 11  shows the Troika&#39;s Super dataset; 
           [0041]      FIG. 12  shows an Experimental Datasets; 
           [0042]      FIG. 13  shows the composition of train-set 1  and train-set 2  where given an arbitrary train-set, which contains 100 instances; 
           [0043]      FIG. 14  shows a table comparing ensemble algorithms using 6 inducers: C4.5 (Trees), PART (rules), VFI (misc.), IBk (Lazy), Bayes-Net (Bayes), SMO (functions); 
           [0044]      FIG. 15  shows a table comparing ensemble algorithms using 3 inducers: C4.5 (Trees), VFI (misc.), IBk (Lazy); 
           [0045]      FIG. 16  shows a table comparing ensemble algorithms using one inducer, C4.5, summary of experimental results for UCI repository datasets; 
           [0046]      FIG. 17  shows a ROC graph for “Opel” class. It can be seen that Troika, in the strong line, excels its opponents in almost every segments of the graph; 
           [0047]      FIG. 18  shows a ROC graph for “Bus” class; 
           [0048]      FIG. 19  shows a ROC graph for “Saab” class; 
           [0049]      FIG. 20  shows a ROC graph for “Van” class; 
           [0050]      FIG. 21  shows a table of the mean accuracy of all assembly methods; 
           [0051]      FIG. 22  shows a table of the mean AUC (area under ROC) for all assembly methods; 
           [0052]      FIG. 23  shows a table of the mean execution time for all assembly methods; 
           [0053]      FIG. 24  shows a table of the summary of statistical significance of the difference between accuracy performances of the three ensemble methods; 
           [0054]      FIG. 25  shows a table of the original KRKOPT dataset instance distribution; 
           [0055]      FIG. 26  shows a table of the Six KRKOPT derived datasets; 
           [0056]      FIG. 27  shows the correct prediction rate as function of classes count in datasets using one inducer (J48); 
           [0057]      FIG. 28  shows the correct prediction rate as function of classes count in datasets using three inducers (J48, IBK, and VFI); and 
           [0058]      FIG. 29  shows the correct prediction ratio as function of classes count in datasets using six inducers (J48, IBK, VFI, Part, BayesNet and SMO). 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0059]    The idea of ensemble methodology, disclosed in the present invention, is to build a predictive model by integrating multiple models. It is well-known that ensemble methods can be used for improving prediction performance. Researchers from various disciplines such as statistics, machine learning, pattern recognition, and data mining have considered the use of ensemble methodology. Stacking is a general ensemble method in which a number of base classifiers are combined using one meta-classifier which learns theirs outputs. The advantage of stacking is that it is simple, in most cases performs similar to the best classifier, and it is capable to combine classifiers induced by different inducers. The disadvantage of stacking is that it seems to perform worse on multiclass problems. In the present invention, a new method (named Troika) for improving ensemble classifiers using stacking is disclosed. The new scheme is built from three layers of combining classifiers. The new method was tested on various datasets and the results indicate the superiority of the proposed method to other legacy ensemble schemes, Stacking and StackingC, especially when the classification task consists of more than two classes. 
         [0060]    Troika, is designed to address the Stacking and StackingC problems described above. Troika&#39;s ensemble scheme is general purpose and can be used to combine any type of base classifiers which were trained on any subgroup of possible classes of a problem&#39;s domain. In other words, it is possible with Troika to combine models (base classifiers) that were trained on, and therefore may later predict, non congruent datasets, in terms of instance classes. 
         [0061]    The main idea of Troika is to combine base classifier in three stages. In the first stage it will combine all base classifiers (sometimes refer to as Level-O or base layer) using specialist classifiers. The specialists are classifiers which have a dichotomous model (a one-against-one binarization); each specialist&#39;s (specialist classifier) task is to distinguish between pairs of classes from the problem domain, and no two specialists are alike, i.e., each specialist is specialized in distinguishing between different pairs of classes. We will use the notation Spi-j to indicate the specialist &lt;i,j&gt;. Spi-j&#39;s task is to classify whether an input instance belongs to classi or to classj. Let k be the number of classes in a problem domain, i={0 . . . k−2} and j={i+1 . . . k−1}. The exact specialist classifiers number equals 
         [0000]    
       
         
           
             
               ( 
               
                 
                   
                     2 
                   
                 
                 
                   
                     k 
                   
                 
               
               ) 
             
             , 
           
         
       
     
         [0000]    where k is the number of classes in the problem domain. A specialist classifier output, Pinst,i-j, is the computed probability that an input instance, inst, belongs to classi (wherein Input instance inst has a computed probability (1-Pinst,i-j) of belonging to classj). Given an instance inst belonging to class i or class j, we will expect Spi-j to predict the inst class correctly most of the time. Conversely, when inst real class is not i or j the output of Spi-j will certainly be faulty in an unpredicted way. For example, Sp2-5 indicates specialist2-5 which may distinguish between class2 and class5. If an instance inst of class0 is given to Sp2-5, we cannot make a preliminary assumption about Sp2-5&#39;s output (because in the training phase Sp2-5 had been given only instances of class2 and class5). This is why we need to learn the characteristics and patterns of the behavior of specialists to be able to predict when specialists are correct and when they are not. This is exactly what is done in the next stage, the meta-classifier layer. 
         [0062]    The second stage is the meta-classifiers layer. This layer&#39;s task is to learn the prediction characteristics of the specialist classifiers. The method used to accomplish this task is to combine the specialist classifiers using k meta-classifiers. Each meta-classifier is in charge of one class only, and will combine all the specialist classifiers which are able to classify its own class; meta-classifier m  (m={0 . . . k−1}) will combine all specialists Sp i-j  whose i=m or j=m. The meta-classifier will compute a probability P inst,c  as an output. P inst,c  stands for the computed probability that a given input instance inst belongs to class c  (c={0 . . . k−1}). The meta-classifiers are trained in a one-against-all fashion, rather than one-against-one as with specialist classifiers. We will explain the logic behind this choice later. 
         [0063]    The third stage is the super classifier layer. This layer contains only one classifier: the super classifier. The goal of this stage is to produce Troika&#39;s final prediction. The inputs of the super classifier are the outputs P inst,c  produced by the meta classifiers in the previous stage. In the training phase, the Super classifier learns the conditions in which one or more of the meta-classifiers predict correctly or incorrectly. The super classifier&#39;s output is a vector of probabilities (one value for each class) which forms the final decision of the Troika ensemble scheme. 
         [0064]      FIG. 5  presents the schematic of the Troika ensemble&#39;s architecture. Troika uses three distinguishable layers of combining classifiers, and is arranged in a tandem-like order. An instance of a problem&#39;s domain feeds the layer 0  classifiers (base classifiers). Layer 0  classifiers will output their predictions to layer 1 &#39;s inputs. Classifiers on layer 1  (specialists classifiers) will combine layer 0 &#39;s classifiers, and then feed their predictions to layer 2  inputs. Layer 2  classifiers (meta-classifiers) in their turn, will combine layer 1 &#39;s classifiers predictions and feed their own predictions to layer 3  inputs. The layer 3  classifier (super classifier) will combine layer 2 &#39;s predictions, and ultimately, produce a final prediction. 
         [0065]    A new ensemble methodology, Troika, is designed to address the Stacking and StackingC problems described above. Troika&#39;s ensemble scheme is general purpose and can be used to combine any type of base classifiers which were trained on any subgroup of possible classes of a problem&#39;s domain. In other words, it is possible with Troika to combine models (base classifiers) that were trained on, and therefore may later predict, non congruent datasets, in terms of instances classes. 
         [0066]    The main idea of Troika is to combine base classifier in three stages. In the first stage it will combine all base classifiers (Sometimes refer to as Level-0 or base layer) using specialist classifiers. The specialists are classifiers which have a dichotomous model (a one-against-one binarization); each specialist&#39;s (specialist classifier) task is to distinguish between pairs of classes from the problem domain, and no two specialists are alike, i.e., each specialist is specialized in distinguishing between different pairs of classes. We will use the notation Sp i-j  to indicate the specialist &lt;i,j&gt;. Sp i,j &#39;s task is to classify whether an input instance belongs to class i  or to class j . Let k be the number of classes in a problem domain, i={0 . . . k−2} and j={i+1 . . . k−1}. The exact specialist classifiers number equals 
         [0000]    
       
         
           
             
               ( 
               
                 
                   
                     2 
                   
                 
                 
                   
                     k 
                   
                 
               
               ) 
             
             , 
           
         
       
     
         [0000]    where k is the number of classes in the problem domain. A specialist classifier output, P inst,i-j , is the computed probability that an input instance, inst, belongs to class i  (Input instance inst has a computed probability (1−P inst,i-j ) of belonging to class j ). Given an instance inst belonging to class i  or class j , we will expect Sp i-j  to predict the inst class correctly most of the time. Conversely, when inst real class is not i or j the output of Sp i-j  will certainly be faulty in an unpredicted way. For example, Sp 2-5  indicates specialist 2-5  which may distinguish between class 2  and class 5 . If an instance inst of class 0  is given to Sp 2-5 , we cannot make a preliminary assumption about Sp 2-5 &#39;s output (because in the training phase Sp 2-5  had been given only instances of class 2  and class 5 ). This is why we need to learn the characteristics and patterns of the behavior of specialists to be able to predict when specialists are correct and when they are not. This is exactly what is done in the next stage, the meta-classifier layer. 
         [0067]    The second stage is the meta-classifiers layer. This layer&#39;s task is to learn the prediction characteristics of the specialist classifiers. The method used to accomplish this task is to combine the specialist classifiers using k meta-classifiers. Each meta-classifier is in charge of one class only, and will combine all the specialist classifiers which are able to classify its own class; meta-classifier m  (m={0 . . . k−1}) will combine all specialists Sp i-j  whose i=m or j=m. The meta-classifier will compute a probability P inst,c  as an output. P inst,c  stands for the computed probability that a given input instance inst belongs to class c  (c={0 . . . k−1}). The meta-classifiers are trained in a one-against-all fashion, rather than one-against-one as with specialist classifiers. We will explain the logic behind this choice later. 
         [0068]    The third stage is the super classifier layer. This layer contains only one classifier: the super classifier. The goal of this stage is to produce Troika&#39;s final prediction. The inputs of the super classifier are the outputs P inst,c  produced by the meta classifiers in the previous stage. In the training phase, the Super classifier learns the conditions in which one or more of the meta-classifiers predict correctly or incorrectly. The super classifier&#39;s output is a vector of probabilities (one value for each class) which forms the final decision of the Troika ensemble scheme. 
         [0069]    Before one is able to use Troika to classify a new problem&#39;s instances, Troika, (and therefore all of its three combining layers of classifiers) must be trained.  FIGS. 7 and 8  present the proposed procedure. The most straightforward way of doing this is to train one layer of classifiers at a time. This leads to a training process which takes place in a sequence consisting of four stages. At any one stage, a different layer of classifiers will be trained. Since layer 3  depends on layer 2 , layer 2  depends on layer 1  and layer 1  depend on layer 0 , it is necessary first to train layer 0 , then layer 1 , followed by layer 2  and lastly layer 3 . 
         [0070]    Each layer is trained using a different dataset; first, layer 0  dataset is derived from the original dataset which was supplied to Troika as input; layer 1  dataset will be generated using predictions of layer 0  classifiers; layer 2  dataset will be generated using predictions of level 1  classifiers, and, finally, level 3  dataset will be generated using predictions of level 2  classifiers. The technique of generating a derived dataset using predictions of classifiers will be discussed later. 
         [0071]    Each layer is trained in a k-fold cross validation method. The process of training each layer (except for layer 3 ) is as follows: first, the layer&#39;s dataset is split into training set and test-set. Next, a layer&#39;s classifiers will be built using the layer&#39;s training set. Finally, the successor layer&#39;s dataset will be produced by applying test set instances on the layer&#39;s classifier. Each test set instance fed to layer&#39;s classifiers will yield predictions. These predictions will be assembled to form a new instance for the successor dataset. A cross-validation fold is completed when the generating of successor instances from all the test-set&#39;s instances is finished. On the next fold, the new produced successor&#39;s dataset instances will be added to those of the previous fold. By the end of k folds, the successor layer&#39;s dataset will contain exactly the same amount of instances as the present layer&#39;s dataset. 
         [0072]    Initially, a dataset is given as input for Troika (denoted as original-dataset in  FIG. 7  and  FIG. 8 ). The second dataset, the specialist dataset, will be derived from the base-classifiers&#39; predictions on the level 0  test set. In this way, the training set is divided into k disjoint sets; k−1 sets will be joined together to form the training set, and the last set will be used as a test set. 
         [0073]    We will use this test set to produce new instances for the successor layer, or, in the case of the last layer which has no successor, to test and validate Troika. When each fold is finished, a new fold will be commenced until a total of k folds had been made. In each fold, a different set will be selected to serve as a test set. 
         [0074]    There are four kinds of instance in Troika. The first type is the original training set. The second kind is the specialists&#39; instances. These are derived from the base classifiers&#39; predictions. The third kind of instance is the meta-classifiers&#39; instances. These instances are derived from the specialists&#39; predictions. The last kind of instance is the super classifier instance. These instances are derived from meta-classifiers predictions. 
         [0075]    Given l is the number of base classifiers and k is the number of classes in the problem domain, each base classifier output vector, BC l , can be presented as: BC l ={P(C 0 ), P(C 0 ), . . . , P(C k )}. From these vectors, we produce the specialists&#39; instances. 
         [0076]    In general, specialist classifier, Sp i-j , instances are composed using the probabilities P (C i ) and P (C j ) of each BC i . It may be possible also that one or more BC l  will not contain P (C i ) or P (C j ) or both.  FIG. 9  presents the derived dataset of Sp i-j . 
         [0077]    In Stacking, each example k (instance number k) of a Stacking meta-level dataset contains all, P l, j, k  (wherein P l, j, k  refers to the probability given by base classifier l for class j on example number k), produced by l base classifier&#39;s for all j classes in the problem domain; there are therefore j*l*k fields to the meta-classifier dataset. On the other hand, in Troika each example k of Sp i-j  dataset contains two values per base classifier, P (C i ) and P (C j ); there are therefore 2*l*k fields to a specialist dataset. 
         [0078]    The reduction of dimensionality in Troika&#39;s first combining layer&#39;s dataset compared to the Stacking meta-level dataset is: 
         [0000]    
       
         
           
             
               
                 
                   r 
                   = 
                   
                     
                       
                         Specialist_dataset 
                          
                         _volume 
                       
                       
                         
                           stacking_meta 
                            
                           _level 
                            
                           _dataset 
                         
                         - 
                         volume 
                       
                     
                     = 
                     
                       
                         
                           2 
                           ⋆ 
                           l 
                           ⋆ 
                           k 
                         
                         
                           j 
                           ⋆ 
                           l 
                           ⋆ 
                           k 
                         
                       
                       = 
                       
                         2 
                         j 
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0079]    We can see that as j, the number of base classifiers in the ensemble increases, the Stacking meta-level dataset has a quadric increase in volume while Troika has a only a linear increase. This is a big advantage for Troika, because it makes it possible to combine a very large group of base classifiers without being caught in the dimensionality course. In our experiments we used Troika and Stacking to combine as many as 3900 base classifiers (with letter dataset); Troika showed a clear advantage in terms of accuracy. We suspect that the reason for Troika&#39;s triumph in this case derives from the huge dimensions (dimensionality course) of the meta-level dataset, making it hard for the Stacking meta-classifier to produce a good model. This weakness of Stacking had been shown in several previous studies and again in this study. 
         [0080]    Given that each pair of classes i and j have a dedicated sp i-j , and k is the number of classes in the problem domain, there are some 
         [0000]    
       
         
           
               
             
               ( 
               
                 
                   
                     2 
                   
                 
                 
                   
                     k 
                   
                 
               
               ) 
             
           
         
       
     
         [0000]    specialist classifiers in Troika. Each specialist classifier outputs a single prediction, P i-j  (inst), which stands for the probability, which was computed by Sp i-j , that a specialist instance, inst, is of class i. 
         [0081]    Troika has exactly k meta-classifiers, where k denotes the number of classes in the problem domain. Each meta-classifier has a different dataset that derives from a different projection of the output predictions of the specialists. Each meta dataset has one instance for each instance in the dataset which was given as an input to Troika. The meta-classifiers are trained using one-against-all binarization; for each meta instance, if the corresponding instance in the input dataset is of class Cm, then its class attribute is positive. Otherwise, the meta instance class attribute is negative. The attributes of each meta-classifier (meta-classifier m  in general) instances are the probabilities P i-j  (inst) produced by all specialist, Sp i-j , where which j equals m; there are therefore always k attributes for each meta-classifier instance (not including the class attribute). The volume of each meta dataset can be computed as follows: 
         [0000]        V   meta-dataset =( k+ 1)* n   (3) 
         [0000]    where k is the number of classes in the problem&#39;s domain and n is the number of instances in the original dataset. 
         [0082]    Comparing Troika&#39;s meta-datasets to a Stacking dataset is a rather tricky business, and depends on two major factors: the number of classes in the problem&#39;s domain and the number of base classifiers. The Stacking meta dataset is a function of the number of base classifiers. On the other hand, Troika&#39;s meta dataset is a function of the number of classes in the domain&#39;s problem. Our experience with the tested UCI datasets, shows that Troika&#39;s meta datasets tend to be much smaller than Stacking meta datasets. 
         [0083]    StackingC&#39;s dataset volume is a function of the number of base classifiers. Each base classifier contributes one attribute to a meta instance; therefore, when an ensemble contains a large number of base classifiers (more than a few thousand), even though a much smaller one than Stacking meta dataset, StackingC&#39;s dataset can grow to such an enormous size that it can no longer be used for training the meta-classifier. Troika, on the other hand, is much less sensitive to the number of base classifiers because each specialist is trained using the one-against-one binarization method. Conversely, Troika is more sensitive than StackingC to the number of classes in a domain&#39;s problem, in terms of training time. This is due to the amount of specialists that need to be trained: 
         [0000]    
       
         
           
             
               k 
                
               
                 ( 
                 
                   k 
                   - 
                   1 
                 
                 ) 
               
             
             2 
           
         
       
     
         [0000]    (which yields time complexity of O(k) 2  for first combining layer) versus k meta-classifiers in StackingC (which yields time complexity of O(k)). 
         [0084]    Given a meta-instance, each Troika meta-classifier j  (j={1 . . . k}) outputs a prediction, P j (inst), which reflects the belonging of the meta-instance, inst, to class C j  (therefore also the belonging of the original instance to that same class). It might be thought that each meta-classifier is responsible for the prediction for a single class; meta-classifier 0  is responsible for predicting the belonging of the input original instance to class 0 . Meta-classifier 1  is responsible for predicting the belonging of the input original instance to class 1  etc. 
         [0085]    A vector of all meta-classifier predictions forms the super-instance: 
         [0000]      SuperInstance={ p   0 (inst),  p   1 (inst), . . . ,  p   k (inst),Class)}  (4) 
         [0086]    Each instance in the super-dataset has a corresponding instance in the original dataset. The class attribute of the super dataset is copied from the corresponding instance of the original dataset without any changes.  FIG. 11  shows the super dataset structure. 
         [0087]    When a new instance, x, is input to Troika, firstly, it will be fed to all of the base-classifiers. Each base classifier will then process the given instance and produce their predictions, from which a specialist instance will be generated. Sp i,j inst={P i,j (x)|all base classifiers that were trained on classes i and j}. Next, each specialist, Sp i-j , will classify its unique instance, Sp i,j inst, (which derives directly from the base classifiers predictions) and produces a prediction P i,j (inst i-j ); From these predictions k meta-instances, Meta-inst j  (j=0 . . . k) will be created; one for each of the meta-classifiers. Each meta-classifier i , will then output its prediction, Pmeta i (Meta-inst j ) and from these predictions will generate a super classifier instance, inst super ={Pmeta 0 (inst j ), Pmeta 1 (inst j ), . . . , Pmeta k (inst j )} This single instance will be fed to the super classifier, which in return will produce its prediction, Troika&#39;s final prediction 
         [0000]      FinalDecision( x )={ P ( CL   |1   |x ),  P ( C   2   |x ), . . . ,  P ( C   K   |x )}  (5) 
         [0088]    Hereinafter, we will specify the conditions in which Troika had been tested. Our goal was to create a ground on which Troika could be correctly compared to Stacking and StackingC. We start with short overview on the datasets we used, the algorithms we implemented (Troika, Stacking and StackingC), how we trained each of them and what metrics we had used to measure the performance of the ensemble schemes. Next, we will display and review the results of the experiments in details. 
         [0089]    The goal of our experiment was to measure the success of each one of the three ensemble methods (Troika, Stacking and StackingC) when applied to various problems. 
         [0090]    The experiment had stretched into three dimensions. The first dimension was the number of inducers that were used to create the base classifiers upon which all the ensemble methods rely. The second was the different datasets, and the third dimension was the ensemble methods, of which we had three: Stacking, StackingC and Troika. 
         [0091]    For the experiment to be valid, we had to split the training phase into two stages: first stage composed of base-classifiers training; in the second stage we had trained the ensembles, which got the base-classifiers from first stage as input. This means that all ensemble methods have been given the same base classifiers as input, therefore a valid comparison could successfully be made. This experiment could be given the title—which ensemble will combine the base-classifiers better? 
         [0092]    In total, we have used 29 different datasets in all the experiments; all of which were manually selected from the UCI repository [Merz C. J, and Murphy P. M., UCI Repository of machine learning databases. Irvine, Calif.: University of California, Department of Information and Computer Science, 1998.] and are widely used by the pattern recognition community for evaluating learning algorithms. The datasets vary across such dimensions as the number of target classes, of instances, of input features and their type (nominal, numeric). 
         [0093]    The examined ensemble schemes—Troika, Stacking and StackingC were implemented in WEKA [Witten I. H. and Frank E. (2005) “Data Mining: Practical machine learning tools and techniques”, 2nd Edition, Morgan Kaufmann, San Francisco, 2005.] in JAVA programming language. 
         [0094]    All classifiers in Troika, Stacking and StackingC which participate in combining the base-classifiers, i.e., the Specialist classifiers, Meta classifiers and the Super classifier (in Troika) and meta classifiers (in Stacking and StackingC) where induced using Logistic algorithm. We have chosen this particular algorithm after trying various alternative inducers. 
         [0095]    First, we used multiple inducers of different branches of the machine-learning theory. Generally, we intended to use only six inducers, C4.5 (trees), SMO (function), IB1 (lazy), VFI (Misc.), BayesNet (Bayes), PART (Rules), but we tested also other configurations: three inducers (C4.5, IB1 and VFI) and one inducer (C4.5). 
         [0096]    Second, All base classifiers were trained using the one-against-one binarization method in which, typically, 
         [0000]    
       
         
           
             
               k 
                
               
                 ( 
                 
                   k 
                   - 
                   1 
                 
                 ) 
               
             
             2 
           
         
       
     
         [0000]    base classifiers are trained; that is one classifier for each pair of classes. Secondly, instead of training a solely single base-classifier for each pair of classes, we actually trained two, each with difference training instances. Train-set 1  (the train-set of first base-classifier, which derives from the train-set) contained the first 125% of the instances in a cyclic manner (that is, the next instance past the last is the first again), whereas train-set 2  contains the next 125% group of the instances in the same cyclic manner (wherein First train-set 2  instance is next instance after the last instance of train-set 1 ). In this manner, we actually trained k(k−1) base-classifiers for each inducer. 
         [0097]    Later on, we suspected that it could be that our choice of training the base-classifiers using one-against-one binarization method might have been the prime reason why Troika preformed better than its rivals, so we repeated the experiment using one-against-all binarization and non-binarization methods. Later, in  FIGS. 21 ,  22 , and  23  we show those experiments results. 
         [0098]    In this experiment the following metrics were measured:
       Accuracy: Accuracy is the rate of correct (incorrect) predictions made by a model over a data set. In order to estimate the generalized accuracy, a 10-fold cross-validation procedure was repeated 5 times. For each 10-fold cross-validation, the training set was randomly partitioned into 10 disjoint instance subsets. Each subset was utilized once in a test set and nine times in a training set. The same cross-validation folds were implemented for all algorithms. Since the mean accuracy is a random variable, the confidence interval was estimated by using the normal approximation of the binomial distribution. Furthermore, the one-tailed paired t-test with a confidence level of 95% verified whether the differences in accuracy between the Troika algorithm and the other algorithms were statistically significant. In order to conclude which algorithm performs best over multiple datasets, we followed the procedure proposed in [Demsar J., Statistical comparisons of classifiers over multiple data sets, J. Mach. Learn. Res. 7 (2006) 1-30.]. In the case of multiple classifiers we first used the adjusted Friedman test in order to reject the null hypothesis and then the Bonferroni-Dunn test to examine whether the new algorithm performs significantly better than existing algorithms.   Area under ROC curve: The second measure we used to evaluate Troika is the Area under the ROC (Receiver Operating Characteristic) curve, a graphical plot of the sensitivity vs. (1-specificity) for a binary classifier system as its discrimination threshold is varied. The ROC can also be represented equivalently by plotting the fraction of true positives (TPR=true positive rate) vs. the fraction of false positives (FPR=false positive rate). ROC analysis provides tools to select possibly optimal models and to discard suboptimal ones independently from (and prior to specifying) the cost context or the class distribution. ROC analysis is related in a direct and natural way to cost/benefit analysis of diagnostic decision making. Widely used in medicine, radiology, psychology and other areas for many decades, it has been introduced relatively recently in other areas such as machine learning and data mining.   Training time: This measure is an applicative one. It has two significances; first, and most logical, heavy time consumption is bad. We would prefer a fast learning ensemble that will yield the best accuracy or area under ROC. Second, the longer time the training of an ensemble takes, the more CPU time it requires, and thus, the more energy it consumes. This is very important on mobile platforms that may be using an ensemble for various reasons.       
 
         [0102]    Since the accuracy and the classifier complexity are affected by the ensemble size (number of classifiers), we examined three ensemble configurations: six, three, and one inducers. The size of the whole ensemble, n en , can be described in the next equation: 
         [0000]        n   en   =n   ind   *k ( k− 1)  (7) 
         [0000]    where n ind  is the number of inducers and k is the number of classes in dataset. For example, the size of Troika ensembles on ‘letter’ dataset, which contains 26 classes is n en =6*26(26−1)=3900 when six inducers are been used, 1950 and 975 inducer for three and one inducers respectively. 
         [0103]      FIGS. 15 ,  15 , and  16  present the results obtained using different number of inducers using the 10-fold cross-validation procedure which was repeated five times and one-against-one binarization method. The superscript “+” indicates that the degree of accuracy of Troika was significantly higher than the corresponding algorithm at a confidence level of 95%. The “−” superscript indicates the accuracy was significantly lower. In Table 10 we used six inducers (C4.5, PART, VFI, IBk, Bayes-Net and SMO) for creating base classifiers, in  FIG. 15  we used three inducers (C4.5, VFI, IBk) and finally in  FIG. 16  we used only one inducer (C4.5). The reason why we repeat all the testing three times with different amount of inducers is to investigate the effect of inducer number on ensemble performance. In  FIGS. 6 ,  7  and  8  “Best B. C.” stands for best base classifier chosen by cross validation. 
         [0104]    As can be seen from  FIG. 14 , the mean predictive accuracy on UCI datasets of Troika excels Stacking and StackingC. It also excels the mean accuracy of the best base-classifier selected by X-VAL (cross validation). Stacking is second best, and last is StackingC. 
         [0105]    There are few datasets in which the Troika obtained a degree of accuracy lower to that of Stacking and StackingC, but none are significant. There are no cases in which Stacking or StackingC achieved much higher degrees of accuracy, but on the contrary, there are cases in which Troika achieved much higher accurate results compare to the other two ensemble methods (Sonar, Splice, Glass, Flag, Vowel, and KRKOPT ( FIG. 25 )). 
         [0106]    A statistical analysis of the accuracy results on the entire dataset collection indicates that
       (1) in five datasets Stacking achieved significantly lower accuracy compare to Troika&#39;s;   (2) in none of the datasets Stacking excels Troika;   (3) in nine datasets StackingC achieved significantly lower accuracy compare to Troika&#39;s; and   (4) in none of the datasets StackingC excels Troika.       
 
         [0111]    A statistical analysis of the Area under ROC curve results of the entire dataset collection indicates that
       (1) Stacking and StackingC achieved significantly lower results compare to Troika in two datasets; and   (2) Stacking and StackingC were better than Troika in one dataset.       
 
         [0114]    Although mean execution time of Troika is longer than stackingC and shorter than of Stacking, adjusted non-parametric Friedman test with a confidence level of 95% shows that those differences are not significant. 
         [0115]    The null-hypothesis that all ensemble methods perform the same using six inducers was rejected using the adjusted non-parametric Friedman test with a confidence level of 95%. Using the Bonferroni-Dunn test we could reject the null-hypothesis that Troika and Stacking perform the same at confidence levels of 93.4%. Using same test we could also reject the hypothesis that Troika and StackingC performs the same at confidence levels above 99%. 
         [0116]    Using three inducers yielded results that resemble those shown in  FIG. 14  where we used six inducers. Again, we see the mean predictive accuracy of Troika is better than of Stacking or of StackingC. Troika accuracy is better than the mean accuracy of the best base-classifier selected by X-VAL (cross validation). Stacking is still second best, and StackingC remain the worse ensemble. 
         [0117]    A statistical analysis of the accuracy results on the entire dataset collection indicates that
       (1) in six datasets Stacking achieved significantly lower accuracy compare to Troika&#39;s;   (2) in none of the datasets Stacking excels Troika;   (3) in ten datasets StackingC achieved significantly lower accuracy compare to Troika&#39;s; and   (4) in none of the datasets StackingC excels Troika.       
 
         [0122]    Statistical analysis of the ROC results of the entire dataset collection indicates no significant difference between all the ensemble schemes, although Troika has a trifle advantage on average. 
         [0123]    Statistical analysis of the execution time reveals that there is a difference between ensemble methods. Using the Bonferroni-Dunn test with a confidence level of 95% shows Troika execute time is shorter compares to StackingC. 
         [0124]    The null-hypothesis that all ensemble methods perform the same using three inducers was rejected using the adjusted non-parametric Friedman test with a confidence level of 95%. Using the Bonferroni-Dunn test we could reject the null-hypothesis that Troika and Stacking perform the same at confidence levels of 92%. Using same test we could also reject the hypothesis that Troika and StackingC performs the same at confidence levels above 99%. 
         [0125]    Using one inducer yielded very different results compare to using three or six inducers. The mean predictive accuracy of Troika, though better than of StackingC, was only slightly better than of Stacking. Troika accuracy still manage to be is better than the mean accuracy of the best base-classifier selected by X-Val. 
         [0126]    Statistical analysis of the ROC results of the entire dataset collection indicates no significant difference between all the ensemble schemes. Statistical analysis of the execution time reveals that there is a difference between the ensemble methods. Using the Bonferroni-Dunn test with a confidence level of 95% shows Troika has a longer execute time compares to Stacking and StackingC. 
         [0127]      FIGS. 17 ,  18 ,  19  and  20  present the four Troika&#39;s ROC graphs, computed from the results on Vehicle dataset using 6 inducers. Each graph belongs to one of Vehicle&#39;s class. 
         [0128]    We can observe from the graphs above that there is a consistent advantage to Troika in all classes of Vehicle dataset. Although, in general, we found no significant difference between all three tested ensemble schemes concerning area under ROC graph, there is an advantage to Troika in multiclass datasets where there is sufficient number of instances in dataset. 
         [0129]    As indicated hereinbelow, there are several methods for converting multiclass classification tasks into binary classification tasks. There are two reasons why we had made the effort to experiment different kinds of class binarization methods. First, recall that our primary requirement from the base classifier was that they will be given as an input to all ensemble schemas uniformly, so that an acceptable comparison between all ensemble schemes could be made. This, we had successfully implemented by training the base classifiers separately from the ensembles. So after supplying each ensemble with the same base classifier, there could be no argue that some difference in the training methods of Troika and the other ensembles bias the results in favor of Troika; still one question remains. Is it possible that the selected binarization method (i.e. 1-1) in itself ‘helps’ Troika more than it ‘helps’ the other ensembles? To answer this question we needed to remake the experiments (at least some of them) using another kinds of binarization methods and find out if our primeval choice of binarization method is to blame with Troika&#39;s good performance. 
         [0130]    The second reason was the disappointing results obtained by StackingC. StackingC is designed as an improvement of Stacking, and, as shown in our experiments, it had performed even worse than Stacking, especially in multiclass datasets which it should performed better. We suspected that StackingC is inefficient when its base-classifiers are trained using 1-1 binarization method; as there is greater number of base classifiers, the chance that each StackingC&#39;s meta classifier will predict correctly decreases and therefore StackingC&#39;s ability to correctly predict also decrease. Our experiments results emphasize this drawback; we see it baldly in Segment, LED7, Vowel, KRKOPT and Letter datasets. Each one of those datasets has at least 7 classes. There is a considerable drop of accuracy on those datasets compare to Stacking or Troika. Thus our hypothesis is that the performance of StackingC will increase dramatically, especially when using a multiclass datasets, when base classifiers binarization method will be changed. 
         [0131]    The configuration of Troika, Stacking and StackingC were left untouched from previous experiment. We had, again, tested all ensembles using one, three and six induces. The difference, then, from first experiment, part from fewer tested datasets, is solely the method of binarization we used in the training of the base-classifiers. 
         [0132]    We had tested three arrangements for base-classifiers trainings. Two are binarization methods; the 1-1 (one-against-one) and the 1-All (One-against-All) methods, and the last is a non binarization method AAA (All-against-All), in which base classifiers train on the entire train-set, without any class-binarization (the default training method). 
         [0133]    One-against-all (1AA) is the simplest arrangement method. When given a problem with k classes, k binary classifiers will be produced by using this method. Each classifier is exercised to distinguish a class C i  from the remaining classes. The final prediction is usually given by the classifier with the highest output value, as done in StackingC, or by combining them in some manner. 
         [0134]    On the other hand we term the methodology used in the first experiment as one-against-one (1A1). Recall that this methodology consists 
         [0000]    
       
         
           
             
               k 
                
               
                 ( 
                 
                   k 
                   - 
                   1 
                 
                 ) 
               
             
             2 
           
         
       
     
         [0000]    predictors, each differentiating a pair of classes C i  and C j , where i≠j. To combine the outputs produced by these classifiers, a majority voting scheme is applied. Each 1A1 classifier gives one vote to its preferred class. The final result is the class with most of the votes. 
         [0135]    As in the first experiment, we had measure the same three metrics, namely, accuracy, ROC and execution time.  FIG. 21  shows that Troika performs better than its rivals regardless of binarization method. In total, it wins  7  out of the 9 (78%) experiments, 5 of 6 (83%) when using three inducers and 3 out of 3 (100%) when using six inducers. The class binarization does has its effect also; we were little puzzled to find out that the best results came from using AAA method which does not use class binarization at all. It contravenes our belief that the use of class binarization will surely produce better results, although using 1A1 along with three inducers was better than the using AAA with one or three or inducers. We noticed that StackingC had made a remarkable revivification when we used base-classifiers training method other than 1-1; it won Stacking in 5 out of 6 experiments where base-classifiers training methods were 1-All and AAA. It even won Troika once using 3 inducers and AAA. In total, the evidence shows that troika is superior to Stacking and StackingC when using more than one inducer for base-classifiers. 
         [0136]    We can see from  FIG. 22  that Troika performs better than its opponents, again, regardless of binarization method. In total, it wins  8  out of the 9 (89%) experiments, and 6 of 6 (100%) when given three or six inducers. AAA training method this time won second place. We got best performance using 1A1 coupled with three inducers. In a matter of fact, all ensemble methods had had their peak ROC results when using this exact configuration. The poorest results always came along with the used of single inducer regardless of base-classifiers training method, but, on the other hand, there wasn&#39;t hard evidence that using six inducers, rather than three, yields better results. 
         [0137]    We can see from  FIG. 23  that Troika execution time is significantly better than its opponents when using 1-1 binarization method. One of the explanations for this particular result is that when using 1-1, base-classifiers count is much higher than when using 1AA, which is even higher than when using AAA. This proves our claim that when number of base-classifiers becomes greater Troika execution time, relatively to Stacking and StackingC, become longer in slower rate. We can see that Stacking took longer to execute when it used three inducers rather than using six. It is a very strange finding indeed, not quite comprehensible. Well, this phenomenal is a result of our distributed experiment. We had used different computers to perform experiments in which we used 1, 3 and 6 inducers. The one which run the experiments that used three inducers, happen to be a much slower computer, slow enough to make these ridiculous results. As a matter of fact, this does not affect our conclusions, because when we compare execution time of the three ensembles, we actually compare how each function, given the number of inducers and method of base-classifiers training, thus eliminating the between treatment effect. 
         [0138]    Finally, we can see that Troika execution time was the longer then other ensembles when using AAA base-classifiers training method. In this particular method, where minimal base classifiers where induced, the large number of combining classifiers in Troika was the giving factor, therefore Troika execution time was the worst. So far the results have shown that troika excels Stacking and StackingC in terms of accuracy, regardless of base-classifiers binarization method. We also had shown Troika is preferable, in terms of execution time, especially when having many inducers to combine. In addition Troika&#39;s AUC mean is greater than of Stacking and of StackingC. However the statistical significance has been separately examined for each dataset. In this section we use the statistical procedure proposed in [Demsar J., Statistical comparisons of classifiers over multiple data sets, J. Mach. Learn. Res. 7 (2006) 1-30.] to conclude which algorithm performs best over multiple datasets. First we used adjusted non-parametric Friedman test with a confidence level of 95% to determine whether the difference between the ensemble methods is significance in general. Later, if we found a significance difference, we used the Bonferroni-Dunn test with a confidence level of 95% (when not specified otherwise) to find which ensemble differs from Troika. The summary of the results are provided in  FIG. 24 . The “+” sign indicates that the degree of accuracy of Troika was significantly higher than the corresponding algorithm at a confidence level of 95%. The “=” sign indicates the accuracy was not significantly different. The “+ (xx %)” superscript indicates that the degree of accuracy of Troika was significantly higher than the corresponding algorithm at a confidence level of xx %. The summary table indicates that in most configurations, Troika has significantly prevailed Stacking and StackingC accuracy. 
         [0139]    A close examination of the results shown in  FIGS. 14 ,  15  and  16  indicate that there are some datasets which disagree with our intermediate conclusions. Troika performs worse than Stacking in both Zoo and Soybea datasets. These poor performance of Troika in both datasets emphasize Troika&#39;s weaknesses. Zoo dataset has seven classes, 101 instances and when trained using 1-1 binarization method, 252 base-classifiers are trained. Soybean dataset contains 19 classes and 683 instances. We explain these poor results of Troika with the small number of instances in respect with number of classes. While Stacking and StackingC has one layer of combining layers, Troika has three. This attribute of Troika, forces Troika to spread the training meta instances with the three combining layers, therefore each layer gets fewer instances than Stacking or StackingC meta combiner gets. When there are enough instances in the datasets, this is not a major drawback. But when the original number of instances in the dataset is very small in respect to the number of classes, this may lead to an inferior ensemble. Specifically, we found the following index useful for deciding which ensemble method to use. The index is defined as the number of instances divided by the square of the number of classes. For example in 1A1 binarization method Troika should be chosen if the dataset index is higher than 3. 
         [0140]    Another important finding from our experimental study indicates that using StackingC along with base-classifiers which were trained using 1-1 binarization method yields very poor ensemble. This emphasizes another good attribute of Troika; assuming that some or all of the base-classifiers may not, or could not be trained on more than two classes of a multiclass datasets, then Troika will have a large advantage over StackingC and Stacking; over the first, for it yields poor ensemble when coupled with base-classifiers trained using 1-1 binarization method as already shown, and over the later, because it is simply not that good with multiclass datasets. Hereinafter, we investigate another interesting parameter; the effect of classes number on Troika performance. In order to answer the question in the title we took the KRKOPT dataset, which initially has 17 classes and manipulated it several times. This dataset has been examined with increasing number of classes in order to examine the relation between the number of classes and the predictive performance. The manipulation was very simple; for the creation of the first derived dataset, “KRKOPT-2-clss” we started with the original KRKOPT dataset ( FIG. 25 ) and filter only instances of the two most prominent classes (the classes which has the most instances), then to create the “KRKOPT-3-clss” we did exactly the same procedure as with “KRKOPT-2-clss”, but filtered only the instances of the three most prominent classes and so on with “KRKOPT-4-clss”, “KRKOPT-5-clss”, “KRKOPT-6-clss” and “KRKOPT-7-clss” ( FIG. 26 ). At the end of this process we had six datasets, each has different class count and different number of instances. Table 18 specifies the list of datasets which were used in this experiment. 
         [0141]    In this experiment we used the same ensembles configuration as we did in the previous two experiments. Our metrics had not been changed; accuracy, AUC and execution time. All base-classifiers where trained using 1-1 binarization method. 
         [0142]      FIGS. 27 ,  28  and  29  present the accuracy results of Troika, Stacking and StackingC when using 1, 3 and 6 inducers respectively. We show here only the Accuracy. 
         [0143]    From the  FIG. 27 , it is evident that Troika and Stacking are pretty much close with small advantage to stacking. This came with no surprise to us since we were using only one inducer. On the other hand, StackingC accuracy performance is free falling while number of classes in datasets increases. This is the effect we had already seen in previous experiments. Again the blame is the 1-1 binarization method we used to train the base-classifier. Stacking and Troika accuracy is better than the best base-classifier selected by cross-validation. 
         [0144]    From  FIG. 12 , we can learn that Stacking and Troika have same accuracy rate when having 2-classes dataset. Then, when number of classes is three a gap between the accuracy of those two is formed, in favor of Troika. As the number of classes count in data-set increases, this gap enlarges. StackingC accuracy performance continues to free falling while number of classes in datasets increases. This time, Troika alone has better accuracy than the best base-classifier selected by cross-validation. It seems that adding inducers to ensemble had damaged Stacking accuracy. 
         [0145]    Although embodiments of the invention have been described by way of illustration, it will be understood that the invention may be carried out with many variations, modifications, and adaptations, without exceeding the scope of the claims.