Abstract:
A method for benchmarking diagnostic algorithms for a particular application is provided. The diagnostic algorithms are rank ordered based on a specified criterion so as to weed out weak algorithms, selecting more robust algorithms, defined in some sense, for deployment. This is realized by evaluating various parameters subsequently mentioned. A normalized product entropy ratio parameter is obtained. A performance parameter vector is fixed to define a plurality of sensitivity parameters including a plurality of threshold parameters and a plurality of data parameters. The plurality of threshold parameters and the plurality of data parameters are perturbed to obtain a threshold sensitivity parameter and a data sensitivity parameter.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention generally relates to fault diagnosis, and more particularly, but not exclusively, to a method, system, and computer program product for benchmarking diagnostic algorithms, rank ordering the algorithms with respect to a pre-specified criterion. 
       BACKGROUND OF THE INVENTION 
       [0002]    A fault refers to an abnormal state of a machine or a system, including dysfunction or malfunction of a part, an assembly, or the whole system. The occurrence of a fault is associated with a number of factors, which in turn is related to a number of symptoms. Fault diagnostics or fault diagnosis is the study of the relationship of fault, factors and symptoms. Fault diagnosis may be used to predict and control the performance of a system, such as a telecommunication system, semiconductor manufacturing equipment, or a human body. 
         [0003]    A variety of methods may be used for fault diagnosis. They include such methods as time series analysis, fuzzy logic methods, neural networks, case-based reasoning, probability reasoning, and a combination of the above methods. Diagnostic algorithms representative of the above approaches are derived and utilized in various applications for fault diagnosis. 
         [0004]    Fault diagnosis has gained considerable significance, for example, in a cost conscious aerospace industry. A particular diagnostic algorithm for an aircraft must prove itself to be advantageous from a cost-benefit standpoint. As a result, personnel such as engineers are faced with an often difficult problem of choosing a best diagnostic algorithm from among many candidate diagnostic algorithms. Despite the appeal of multiple algorithm solutions, practical applications are limited by engineering resources. The engineer is forced to pick a few among many. 
         [0005]    Accordingly, it is desirable to implement a system, method, and computer program product by which a variety of diagnostic algorithms may be benchmarked against each other, whereby a best diagnostic algorithm for a particular application may be selected. In selecting a best diagnostic algorithm, it is desirable to implement a mechanism whereby non-robust algorithms that do not generalize well on unseen data or scenarios may be weeded out. Furthermore, other desirable features and characteristics of the present invention will become apparent from the subsequent detailed description of the invention and the appended claims, taken in conjunction with the accompanying drawings and this background of the invention. 
       BRIEF SUMMARY OF THE INVENTION 
       [0006]    In one embodiment, by way of example only, a method for benchmarking diagnostic algorithms for a particular application is provided. A normalized product entropy ratio parameter is obtained. A performance parameter vector is fixed to define a plurality of sensitivity parameters including a plurality of threshold parameters and a plurality of data parameters. The plurality of threshold parameters and the plurality of data parameters are perturbed to obtain a threshold sensitivity parameter and a data sensitivity parameter. 
         [0007]    In another embodiment, again by way of example only, a computer system for benchmarking diagnostic algorithms for a particular application is provided. A storage device stores and retrieves the dataset. A processor is coupled to the storage device. The processor is configured for obtaining a normalized product entropy ratio parameter, fixing a performance parameter vector to define a plurality of sensitivity parameters including a plurality of threshold parameters and a plurality of data parameters, and perturbing the plurality of threshold parameters and the plurality of data parameters to obtain a threshold sensitivity parameter and a data sensitivity parameter. 
         [0008]    In still another embodiment, again by way of example only, a computer program product for benchmarking diagnostic algorithms for a particular application is provided. The computer program product comprises a computer-readable storage medium having computer-readable program code portions stored therein. The computer-readable program code portions comprise a first executable portion configured for obtaining a normalized product entropy ratio parameter, a second executable portion configured for fixing a performance parameter vector to define a plurality of sensitivity parameters including a plurality of threshold parameters and a plurality of data parameters, and a third executable portion configured for perturbing the plurality of threshold parameters and the plurality of data parameters to obtain a threshold sensitivity parameter and a data sensitivity parameter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and 
           [0010]      FIG. 1  is a block diagram of an exemplary computer system capable of implementing and/or incorporating one or more aspects of the following description and claimed subject matter; 
           [0011]      FIG. 2  illustrates an exemplary method for benchmarking diagnostic algorithms; 
           [0012]      FIG. 3  illustrates exemplary performance parameters and sensitivity parameters for a vowel dataset with various classifiers; 
           [0013]      FIG. 4  illustrates exemplary performance parameters and sensitivity parameters for a gas turbine engine dataset with various classifiers; and 
           [0014]      FIG. 5  illustrates an exemplary Pareto front of various algorithms for a gas turbine engine dataset. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0015]    The following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background of the invention or the following detailed description of the invention. 
         [0016]    Turning to  FIG. 1 , an exemplary computing environment  10  is depicted capable of incorporating and using one or more aspects of the following claimed subject matter. As one skilled in the art will appreciate, however, the depicted exemplary embodiment is only one representation of a variety of configurations in which one or more aspects of the claimed subject matter may be implemented. 
         [0017]    Environment  10  includes a central processing unit (CPU)  12  which may execute portions of computer instructions or scripts. CPU  12  is connected to a mass storage device  14  such as a hard disk drive (HDD) or a similar component. CPU  12  is also connected to a memory  16  such as a non-volatile memory, for example, one or more EEPROMs (Electrically Erasable Programmable Read Only Memory), one or more flash PROMs (Programmable Read Only Memory), battery backup RAM, combinations thereof, and the like. 
         [0018]    CPU  12  is coupled through a communication port  18  to a communication network  20  such as an Ethernet LAN (Local Area Network) or WAN (Wide Area Network). Communication network may include wireless components compatible with one or more wireless specifications, such as an IEEE 802.xx, WiMAX, or an equivalent standard. Finally, remote computer systems  22  and  24  are coupled to communication network  20 . As one skilled in the art will appreciate, portions of computer programs, including the processes and scripts hereafter described, may execute on portions of environment  10 , computer systems  22  and  24 , or elsewhere. Portions of environment  10  may be used to evaluate various diagnostic algorithms according to the following described methodologies. For example, mass storage device  14  or memory  16  may store a particular dataset, which is processed by CPU  12  using a particular diagnostic algorithm. 
         [0019]    The following approaches to evaluating diagnostic algorithms, including the depicted exemplary embodiments, may be said to be based on two criteria: non-recurring engineering costs, and recurring engineering costs. Cost metrics may be defined which correspond to each of these two criteria. Development data may be a large cost element and may be directly mapped to non recurring engineering costs. Cost metrics may be defined that measure how well a selected algorithm has used the development data. Tunable parameters correspond to the engineering time of tuning the algorithm once deployed and hence can be seen as recurring engineering costs. Cost metrics may be defined that measure how sensitive a selected algorithm is for the chosen tunable parameters. These cost metrics may be measured with respect to the algorithm&#39;s robustness and thereby reflect costs associated with sustaining the selected algorithm. The exemplary embodiments described below illustrate various procedures for calculating these metrics, making minimal assumptions regarding algorithm internals. These embodiments allow a user to evaluate both in-house as well as third party algorithms. 
         [0020]    As will be further described, performance parameters may be employed to provide an indication of how well a particular diagnostic algorithm performs on a development or validation data set. Using these performance parameters, the sensitivity or robustness of the algorithm with respect to the data and threshold/tunable parameters may be defined and obtained. This sensitivity value may be referred to as a sensitivity parameter or metric. Throughout the following description, nomenclature describing the sensitivity of the performance of the diagnostic algorithm to changes in data is referred to as “data sensitivity.” In other words, the data sensitivity describes the relative change in performance with respect to changes in data. Nomenclature describing changes in threshold/tunable parameters is referred to as “threshold sensitivity.” The threshold sensitivity then, describes the relative change in performance with respect to changes in the parameters. 
         [0021]    The following methodologies may be applicable to many learning or pattern classification algorithms. By application of the following methodologies on a pool of learning algorithms, it is possible to rank order the algorithms with respect to a pre-specified criterion. In this manner, for example, algorithms that are poor performers may be weeded out. 
         [0022]    As a preliminary matter, a number of technical assumptions may be made in order to broaden the applicability of the following exemplary embodiments to various situations. A diagnostic algorithm may be assumed to be a triplet (A, D, T) where A is any data driven learning algorithm chosen/developed by the designer, D is the development or training data used by the designer and T is the thresholds or tunable parameters for the algorithm A. T may be chosen heuristically to suit A for D, obtained through an optimization procedure, or both. Algorithm, A, which is data driven, may be a simple pattern classification algorithm or a complex mixture. 
         [0023]    In many diagnostic applications, Percentage of Misclassification (PMC) metrics, True Positive Rate metrics and False Positive Rate metrics are commonly used. These metrics, for example, may be useful for a fault detection case having two classes (a binary classification problem). In a general scenario having multiple faults, a confusion matrix is commonly used. However, it may be difficult to compare the performance of algorithms using confusion matrices. Receiver Operating Characteristic (ROC) curves and associated variants are also widely used to demonstrate comparison of various algorithms, but when dealing with multiclass classification problems and algorithms that depend on more than one threshold/tunable parameters, ROC curves may result in gross and inaccurate approximations. 
         [0024]    In light of the foregoing, it is useful to define a summary parameter representative of the confusion matrix. Accordingly, a representative metric referred to throughout the following description as a Normalized Product Entropy Ratio (NPER) may be defined. Consider a multiclass classification problem with a total of M classes. Let the Confusion Matrix (CM) be such that the element CM(i, j) gives the percentage of test/cross-validation data, actually belonging to class i being judged by the FDD Algorithm as class j; 1≦i, j≦M. To define the Normalized Product Entropy Ratio, the following definitions of True Positive Rate (TPR), True Negative Rate (TNR), Positive Predictive Value (PPV) and Negative Predictive Value (NPV) are required: 
         [0000]      TPR( X )= Pr ( X =specific class given by the algorithm, given that that class is the TRUTH)  (1) 
         [0000]      TNR( X )=1 −Pr ( X =specific class given by the algorithm, given that the class is NOT the TRUTH)  (2) 
         [0000]      PPV( X )= Pr ( X =the class is the TRUTH, given that the classifier selects that particular class)  (3) 
         [0000]      NPV( X )=1 −Pr ( X =the class is the TRUTH, given the classifier does not select that particular class)  (4), 
         [0000]    where X is the class of interest and Xε{1, 2, . . . , M}. 
         [0025]    Let ProductRate(X) for class X be defined as 
         [0000]    
       
         
           
             
               
                 
                   
                     ProductRate 
                      
                     
                       ( 
                       
                         
                           at 
                            
                           
                               
                           
                            
                           X 
                         
                         = 
                         A 
                       
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             min 
                              
                             
                               { 
                               
                                 
                                   
                                     
                                       
                                         TPR 
                                          
                                         
                                           ( 
                                           A 
                                           ) 
                                         
                                       
                                       , 
                                       
                                         TNR 
                                          
                                         
                                           ( 
                                           A 
                                           ) 
                                         
                                       
                                       , 
                                     
                                   
                                 
                                 
                                   
                                     
                                       
                                         PPV 
                                          
                                         
                                           ( 
                                           A 
                                           ) 
                                         
                                       
                                       , 
                                       
                                         NPV 
                                          
                                         
                                           ( 
                                           A 
                                           ) 
                                         
                                       
                                     
                                   
                                 
                               
                               } 
                             
                           
                         
                         
                           
                             
                               
                                 
                                   if 
                                    
                                   
                                       
                                   
                                    
                                   each 
                                    
                                   
                                       
                                   
                                    
                                   of 
                                    
                                   
                                       
                                   
                                    
                                   the 
                                 
                               
                             
                             
                               
                                 
                                   
                                     
                                       
                                         parameters 
                                          
                                         
                                             
                                         
                                          
                                         are 
                                          
                                         
                                             
                                         
                                          
                                         above 
                                          
                                         
                                             
                                         
                                          
                                         the 
                                       
                                     
                                   
                                   
                                     
                                       ProductRateThreshold 
                                     
                                   
                                 
                               
                             
                           
                         
                       
                       
                         
                           0 
                         
                         
                           
                             otherwise 
                             . 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
         [0026]    Let Normalized Product Rate (NPR) for class X be defined as 
         [0000]    
       
         
           
             
               
                 
                   
                     NormalizedProductRate 
                      
                     
                       ( 
                       
                         
                           at 
                            
                           
                               
                           
                            
                           X 
                         
                         = 
                         A 
                       
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               ProductRate 
                                
                               
                                 ( 
                                 
                                   
                                     at 
                                      
                                     
                                         
                                     
                                      
                                     X 
                                   
                                   = 
                                   A 
                                 
                                 ) 
                               
                             
                             
                               
                                 ∑ 
                                 X 
                               
                                
                               
                                 ProductRate 
                                  
                                 
                                   ( 
                                   X 
                                   ) 
                                 
                               
                             
                           
                         
                         
                           
                             
                               if 
                                
                               
                                   
                               
                                
                               
                                 
                                   ∑ 
                                   X 
                                 
                                  
                                 
                                   ProductRate 
                                    
                                   
                                     ( 
                                     X 
                                     ) 
                                   
                                 
                               
                             
                             &gt; 
                             0 
                           
                         
                       
                       
                         
                           0 
                         
                         
                           
                             otherwise 
                             . 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
         [0027]    Let Normalized Product Entropy (NPE) be defined as 
         [0000]    
       
         
           
             
               
                 
                   NormalizedProductEntropy 
                   = 
                   
                     
                       ∑ 
                       X 
                     
                      
                     
                       
                         NPR 
                          
                         
                           ( 
                           X 
                           ) 
                         
                       
                       * 
                       
                         
                           log 
                            
                           
                             ( 
                             
                               
                                 NPR 
                                  
                                 
                                   ( 
                                   X 
                                   ) 
                                 
                               
                               
                                 - 
                                 1 
                               
                             
                             ) 
                           
                         
                         . 
                       
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
         [0028]    Finally, let Normalized Product Entropy Ratio (NPER) be defined as 
         [0000]      Normalized ProductEntropyRatio=NPE/log( M )  (8). 
         [0000]    Note that for a golden classifier NPER is 1. 
         [0029]    The significance of and the information provided by NPER is highly dependent on how the ProductRate function itself is defined, and what the lower bounds for each of the variables TPR, TNR, PPV and NPV are. These lower bounds could also be different for each class. Accordingly, equal weight may be given to all classes while the same value may be used as the lower bound for all variables across all classes, or, depending upon the application, the lower bounds may be customizable for each variable and each class. 
         [0030]    The ProductRate function may also be viewed as a filter which checks if the algorithm is meeting minimal requirements of the application. The NormalizedProductRate function normalizes ProductRate across the classes, so as to be able to measure the equiprobableness, or NormalizedProductEntropy, which indicates if the algorithm is able to isolate each of the classes in addition to meeting the application requirements. Finally NPER may be scaled to remain in [0, 1]. To be able to define sensitivity parameters, the performance parameter vector P may be fixed to be [PMC, NPER]. 
         [0031]    Based on the above performance parameters vector P, the sensitivity of (A,D,T) with respect to the thresholds and with respect to the noise (Gaussian) added to the data, a threshold sensitivity parameter and a data sensitivity parameter may be defined. 
         [0032]    Let A be the diagnostic algorithm and T be the threshold parameters. Let P A (D,T) denote the performance parameters vector obtained with data D, threshold T and algorithm A. Let T 0  be the vector of original threshold parameters and T 1  be the vector of perturbed threshold parameters (assuming each of the components is perturbed randomly by at most a fraction, f), then the sensitivity of the learning algorithm A with respect to the thresholds, the threshold sensitivity parameter, is defined as 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       Threshold 
                        
                       
                           
                       
                        
                       Sensitivity 
                     
                     = 
                     
                       
                         Δ 
                          
                         
                             
                         
                          
                         
                           P 
                           A 
                         
                       
                       
                         Δ 
                         T 
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where ΔP A  is the norm of difference of the performance vectors and Δ T  is the norm of the difference of the original and perturbed threshold vectors. The metric is used to determine a smoothness of the function in the neighborhood of T 0 . Ideally, the threshold parameters should be chosen from a plateau or a broad-based trough or valley. In addition, choice of the threshold parameters relates to the generalization capability of a particular diagnostic algorithm. 
         [0033]    The data sensitivity parameter is analyzed by introducing noise based on a predetermined scale, i.e., for each variable the scale is determined from the data and a certain percentage of this range is added as noise for the corresponding variable. The scale may be determined based on a measurement range of sensors. For example, suppose k percent of scale is added as noise for each variable. Then 
         [0000]    
       
         
           
             
               
                 
                   
                     DataSensitivity 
                     = 
                     
                       
                         Δ 
                          
                         
                             
                         
                          
                         
                           P 
                           A 
                         
                       
                       
                         k 
                         * 
                         0.01 
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where ΔP A  is the norm of the difference of the performance parameter vectors and k is the percentage of noise added based on scale. The metric is utilized to determine if the function remains in a band (cylinder) after slightly perturbing the data. In one embodiment, several Monte Carlo trials may be performed and the maximum (worst case) values are taken as the estimates for both threshold sensitivity and data sensitivity, as discontinuity of the function in any direction may not be acceptable. 
         [0034]    To perturb the thresholds, let T be defined as the vector with components corresponding to the various threshold parameters of the diagnostic algorithm (threshold parameter vector). Let f be defined as an approximate fraction of perturbation to be induced to obtain T′. Let t i  be the i th  component of T, t i ′ the i th  component of T′ given by t i ′=t i *(1−f)+t i *f*2*r where r is a random number between 0 and 1. Note, that t i ′ is a random number between t i *(1−f) and t i *(1+f) and this is the reason why f is the approximate fraction. 
         [0035]    To perturb the data, let D be the data matrix to be perturbed by adding uniform random noise based on scale of k%. For each variable of D the range is determined. Let k% of range be nf (noise fraction). For each instance of this variable in D, a random number between [−nf, +nf] is added. This is repeated for all the variables to obtain a perturbed data matrix. 
         [0036]    Turning to  FIG. 2 , an exemplary method  30  for evaluating diagnostic algorithms according to the foregoing description is shown. Method  30  illustrates a sequential approach for evaluating various vector representations of a diagnostic algorithm, as well as representative parameters of various functions described above. As noted previously, various portions of method  30  may be implemented by a computer or computer system, or by a processor configured as such. Further, various portions of method  30  may take the form of computer instructions and embodied in computer program products. 
         [0037]    Method  30  begins (step  32 ) by evaluating the confusing matrix (CM) based on the diagnostic algorithm, from which are evaluated the TPR, TNR, PPV, and NPV variables (step  34 ). An NPE parameter is then defined (step  36 ). From the NPE parameter, the NPER is defined (step  38 ). 
         [0038]    In the depicted embodiment, once the NPER is evaluated using the NPE parameter (step  44 ), the performance parameter vector(s) are then accordingly fixed (step  46 ). 
         [0039]    A threshold parameter vector is defined (step  48 ). A perturbed threshold parameter vector is defined and obtained by perturbing the thresholds (step  50 ). A threshold sensitivity parameter is then obtained (step  52 ). 
         [0040]    Coincidentally with the threshold analysis described above, a data matrix is defined (step  54 ). Random noise is added to the data matrix (step  56 ) according to a predetermined scale. The noise is added to each instance of a variable in the data matrix to obtain a perturbed data matrix (step  58 ). The data matrix and perturbed data matrix parameters are used to obtain a data sensitivity parameter (step  60 ). 
         [0041]    Once the threshold sensitivity parameter and data sensitivity parameter is obtained for each classifier, an analysis of the various parameters (metrics) may take place. The NPER parameter is examined (step  62 ), as well as the threshold sensitivity parameter (step  64 ) and the data sensitivity parameter (step  66 ) for a particular classifier. From this analysis, the algorithms may be rank ordered with respect to a pre-specified criterion (step  68 ). Poor performing algorithms may, for example, be discarded from further consideration. Method  30  then ends (step  70 ). 
         [0042]    Consider the following two examples of various applications of method  30  using real world datasets. In the following examples, it is assumed that each diagnostic algorithm provides an interface to an associated training algorithm and an associated testing algorithm. It is also assumed that the internals of the algorithm need not be available. Finally, the test algorithm is assumed to provide a posterior probability estimates for each of the classes. 
         [0043]    The first example utilizes a dataset consisting of Indian Telugu Vowel linguistic data. The second example utilizes gas turbine engine data for an aircraft. The Indian Telugu Vowel dataset constitutes three formant frequencies as features and 6 overlapping vowel classes with complex decision boundaries, consisting of a total of 871 patterns. The gas turbine engine data is a snapshot data. The gas turbine engine data consists of seven features corresponding to Fan Speed (N 1 ), High Pressure Shaft speed percentage (N 2 ), corrected Exhaust Gas Temperature (EGT) and corrected fuel flow (WF) etc. The corrected values are obtained by using a polynomial model as a data-preprocessing step. The data comprises 4 classes, one of which corresponds to nominal and the other three correspond to faults (HP turbine deterioration, bleed band leakage, abrupt EGT sensor failure). There are a total of 6770 patterns. 
         [0044]    Various pattern classification algorithms are considered, namely the Maximum Likelihood Classifier with Gaussian distributions (MLCG), Linear Principal Component Analysis based classifier (LPCA), Non Parameteric Bayesian Classifier (NPBC), k-Nearest Neighbor Classifier, and Support Vector Machine with Guassian Kernel (SVMG) for classification/diagnosis. For the outputs of each classifier, a softmax transformation is applied to obtain a posterior probability estimates. In each of the examples, several Monte Carlo simulations are performed. In each simulation, a five fold cross validation estimate of performance and sensitivity parameters is obtained. To select a best algorithm, a Fuzzy Min-Max criterion is used. 
         [0045]    The results of the linguistics dataset analysis are shown in  FIG. 3  by table  72 . Thresholds for ProductRate are chosen to be 0.65 and the parameters chosen for each of the classifiers are (1) LPCA retains 98% variance and minimum reconstruction errors are used to get the posterior probabilites for each of the classes, (2) NPBC uses a band width of 3, SVM uses Gaussian kernel with C=1.5 and s=2.5, (3) k−NN−3 uses k=3, (4) and k−NN−5 uses k=5. Fuzzy Min-Max criterion analysis selects k−NN−5 to be the best diagnostic algorithm in this case. 
         [0046]    The results of the gas turbine dataset analysis are shown in  FIG. 4  by table  74 . For this dataset, while an ideal choice of thresholds for ProductRate may be approximately 0.95, a less stringent value of 0.85 is chosen to make the illustration clear and the parameters for each of the classifiers (1) LPCA retains 98% variance and minimum reconstruction errors are used to get the posterior probabilites for each of the classes, (2) NPBC uses a band width of 5, (3) k−NN−3 uses k=3, and (4) k−NN−10 uses k=10. Fuzzy Min-Max criterion analysis selects Maximum Likelihood Classifier with Gaussian distributions (MLCG) as the best diagnostic algorithm in this case. 
         [0047]    The above description provides a generic framework for performing sensitivity analysis on the performance parameters of a diagnostic algorithm with respect to tunable parameters and development data, also associating these sensitivity metrics to recurring engineering cost and non-recurring engineering costs, respectively. Once the aforesaid analysis has been performed, zeroing in on a particular diagnostic algorithm may be thought of as a Multiobjective Optimization Problem (MOP) that attempts to simultaneously optimize a number of conflicting objectives: minimization of PMC, Threshold Sensitivity and Data Sensitivity; and maximization of NPER. 
         [0048]    These metrics help the user to exit the technical feasibility stage gate by filtering out weak diagnostic algorithm(s) and take forward the better ones for engineering feasibility on the technology readiness level. Turning to  FIG. 5 , a plot  76  of various algorithms, taking threshold sensitivity on the X-axis and data sensitivity on the Y-axis, is shown. The thick curve passing through the points labeled k−NN−3, MLCG and LPCA represent non-dominating points in the Pareto optimal set (Pareto front). Each of the algorithms above this curve can be filtered out or eliminated. 
         [0049]    Once deployed, a particular diagnostic algorithm is usually expected to continue performing its task. However, it may be useful to implement a monitoring mechanism to report any degradation of performance, particularly in light of the time to retrain or replace the algorithm. The methodologies described above may be used as benchmarking tools for signaling a time to retrain or replace a particular diagnostic algorithm. 
         [0050]    Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment. 
         [0051]    Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention. 
         [0052]    While one or more embodiments of the present invention have been illustrated in detail, the skilled artisan will appreciate that modifications and adaptations to those embodiments may be made without departing from the scope of the present invention as set forth in the following claims.