Abstract:
Method and system are provided for processing a new diagnostics case relative to historical case data for a machine undergoing diagnostics. The method allows providing a database storing historical case data for the machine undergoing diagnostics. The method further allows calculating a degree of similarity between the new case and respective cases stored in the database. A list of neighboring cases is determined relative to the new case based on the calculated degree of similarity between the new case and the respective cases stored in the database. The list of neighboring cases is processed to determine a ranking for possible corrective actions for the new case. A corrective action is selected for the new case based on the ranking of the possible corrective actions for the new case.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    The present invention relates generally to diagnostics of railroad locomotives and other self-powered transportation equipment, and, more specifically, to system and method for processing a new diagnostics case relative to historical case data and determine a ranking for possible repairs. This ranking may be used for condensing knowledge gained from screening cases similar to the new case for the type of machine undergoing diagnostics.  
           [0002]    A machine, such as a locomotive or other complex systems used in industrial processes, medical imaging, telecommunications, aerospace applications, power generation, etc., includes elaborate controls and sensors that generate faults when anomalous operating conditions of the machine are encountered. Typically, a field engineer will look at a fault log and determine whether a repair is necessary.  
           [0003]    Approaches like neural networks, decision trees, etc., have been employed to learn over input data to provide prediction, classification, and function approximation capabilities in the context of diagnostics. Often, such approaches have required structured and relatively static and complete input data sets for learning, and have produced models that resist real-world interpretation.  
           [0004]    Another approach, Case Based Reasoning (CBR), is based on the observation that experiential knowledge (memory of past experiences or cases) is applicable to problem solving as learning rules or behaviors. CBR relies on relatively few pre-processing of raw knowledge, focusing instead on indexing, retrieval, reuse, and archival of cases. In the diagnostic context, a case generally refers to a problem/solution description pair that represents a diagnosis of a problem and an appropriate repair. CBR assumes cases described by a fixed, known number of descriptive attributes. Conventional CBR systems assume a corpus of fully valid or “gold standard” cases that new incoming cases can be matched against.  
           [0005]    U.S. Pat. No. 5,463,768 discloses an approach that uses error log data and assumes predefined cases with each case associating an input error log to a verified, unique diagnosis of a problem. In particular, a plurality of historical error logs is grouped into case sets of common malfunctions. From the group of case sets, common patterns, i.e., consecutive rows or strings of data, are labeled as a block. Blocks are used to characterize fault contribution for new error logs that are received in a diagnostic unit. Unfortunately, for a continuous fault code stream where any or all possible fault codes may occur from zero to any finite number of times and where the fault codes may occur in any order, predefining the structure of a case is nearly impossible.  
           [0006]    U.S. Pat. No. 6,343,236, assigned in common to the same assignee of the present invention, discloses system and method for processing historical repair data and fault log data, which is not restricted to sequential occurrences of fault log entries and which provides weighted repair and distinct fault cluster combinations, to facilitate analysis of new fault log data from a malfunctioning machine. Further, U.S. Pat. No. 6,415,395, also assigned to the same assignee of the present invention, discloses system and method for analyzing new fault log data from a malfunctioning machine in which the system and method are not restricted to sequential occurrences of fault log entries, and wherein the system and method predict one or more repair actions using predetermined weighted repair and distinct fault cluster combinations.  
           [0007]    Additionally, U.S. Pat. No. 6,336,065, assigned to the same assignee of the present invention, provides system and method that uses snapshot observations of operational parameters from the machine in combination with the fault log data in order to further enhance the predictive accuracy of the diagnostic algorithms used therein. That invention further provides noise reduction filters, to substantially eliminate undesirable noise, e.g., unreliable or useless information that may be present in the fault log data and/or the operational parameter data.  
           [0008]    It is believed that the inventive concepts disclosed in the foregoing patents provide substantial advantages and advancements in the art of computerized diagnostics. However, the case-based reasoning tools described in the foregoing patents generally rely on associating probabilistic outcomes with individual features of a given case. The calculation of these probabilistic outcomes may be somewhat time consuming, as may be identification of relevant features within a new case. In addition, not all features have the same amount of reliability and history associated with them, and calculating their probabilistic relevance based on limited data could lead to inaccurate outcomes.  
         BRIEF SUMMARY OF THE INVENTION  
         [0009]    To address the issues identified in the background section of the present invention, as well as introduce improved diagnostics functionality in a diagnostics systems, such as a case-based reasoning system, it is desired to provide an improved algorithm that does not rely on limited case features but on a composition of an entire sample of historical cases. Accordingly, it would be desirable to determine a degree of similarity for a new diagnostics case relative to a broad spectrum of cases. It would be further desirable to provide improved accuracy at a repair code level (as well as a recommendation level) in order to assign an improved confidence value to a diagnostics solution.  
           [0010]    Generally, the present invention fulfills the foregoing needs by providing in one aspect thereof, a method for processing a new diagnostics case relative to historical case data for a machine undergoing diagnostics. The method allows providing a database storing historical case data for the machine undergoing diagnostics. The method further allows calculating a degree of similarity between the new case and respective cases stored in the database. A list of neighboring cases is determined relative to the new case based on the calculated degree of similarity between the new case and the respective cases stored in the database. The list of neighboring cases is processed to determine a ranking for possible corrective actions for the new case. A corrective action is selected for the new case based on the ranking of the possible corrective actions for the new case.  
           [0011]    In another aspect thereof, the present invention further fulfills the foregoing needs by providing a system for processing a new diagnostics case relative to historical case data for a machine undergoing diagnostics. The system includes a database for storing historical case data for the machine undergoing diagnostics. A processor may be configured to calculate a degree of similarity between the new case and respective cases stored in the database. A processor may be configured to determine a list of neighboring cases relative to the new case based on the calculated degree of similarity between the new case and the respective cases stored in the database. A processor may be configured to process the list of neighboring cases to determine a ranking for possible corrective actions for the new case, wherein the system allows selecting a corrective action for the new case based on the ranking of the possible corrective actions for the new case. The foregoing processors may comprise modules in a single processor device or may comprise separate processors. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]    The features and advantages of the present invention will become apparent from the following detailed description of the invention when read with the accompanying drawings in which:  
         [0013]    [0013]FIG. 1 is a block diagram of an exemplary diagnostics system embodying aspects of the present invention.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0014]    [0014]FIG. 1 is a block diagram of an exemplary system embodying aspects of the present invention for processing a new diagnostics case relative to historical case data and determine a ranking (e.g., a relative ranking) for possible repairs. As used herein, a case generally refers to a problem/solution description pair that represents a diagnosis of a problem and an appropriate repair.  
         [0015]    A processor  10  is coupled to a database  12  that may comprise a plurality of cases applicable to a machine undergoing diagnostics. For example, a plurality of historical cases for a given type of locomotives. In one exemplary embodiment, the processor includes a module  14  configured to calculate a similarity function.  
         [0016]    Exemplary diagnostic cases stored in database  12  may be arranged as represented in Table 1 below:  
               TABLE 1                                                                                
 
         [0017]    A new case received for diagnostics analysis could be as represented in Table 2 below:  
                                                                       TABLE 2                           D   73   IMC   13.23   443   2   163.68   2   O   403   303   165   168   3   133705.28       E   73   IMC   13.25   455   2   162.6   2   O   403   301   165   168   3   133705.28       F   70   CTS   0   0   1   0   O   O   0   0   62   62   0   134250.36                  
 
         [0018]    Generally, the objective of the similarity function is to arrive at some indication (e.g., a number, alphanumeric code, linguistic label, etc.) indicative of the degree of similarity between any two cases. Assuming a numerical indication, the value of the number indicating the degree of similarity between two cases may conceptually range from 0 to 1, where a zero value would indicate that the two cases are completely different and a unity value would indicate that they are identical. In one exemplary embodiment, the similarity function may operate as follows:  
         [0019]    Let us introduce a parameter λ that influences how much importance is given to the frequency or repetition of a fault commonly shared by the two cases that are being matched or compared. If the value of the parameter λ=1, this would indicate that the frequency of a fault is not considered at all while calculating a similarity match between the two cases. For example, fault  73  may occur 2 times in a first case and 20 times in a second case. Assuming λ=1, then the contribution of fault  73  to the degree of similarity would be 100% since in this example one would simply determine that the same fault  73  occurred in both cases.  
         [0020]    However, if λ=0, the degree of similarity would be entirely dependent on the frequency of fault matching between the two cases. Assuming λ=1, then, in the foregoing example, the degree of similarity contributed by fault  73  would be {fraction (2/20)}=0.1, or 10%.  
         [0021]    In one exemplary embodiment, an appropriate choice for the value of λ may be determined through experiments and/or simulations configured to maximize the performance of the similarity function algorithm for any given application. As stated above, the value of λ may be as follows: λε{0,1} 
         [0022]    Let us say there are two cases— 
                                                                                                       Case 1       Case 2                    Faults   Frequency   Faults   Frequency                            F1   10   F1   1           F2   1   F2   10                      
 
         [0023]    A question that may arise may be—what is the degree of similarity between Case 1 and Case 2.  
         [0024]    If one were to ignore the frequency column altogether, the information conveyed by the cases might appear as follows:  
                                                   Case 1   Case 2           Faults   Faults                           F1   F1           F2   F2                      
 
         [0025]    The number of common faults=Sum=2. Eq. (1)  
         [0026]    Number of distinct faults in Case1=2  
         [0027]    Number of distinct faults in Case2=2  
         [0028]    Therefore, based on the foregoing assumptions, the degree of similarity for this situation could be calculated as follows:  
         Degree of similarity=[Number of common faults] 2 /{[Number of distinct faults in Case1]*[Number of distinct faults in Case2]}=1  
         [0029]    If one were to consider the frequency column to be a substantial factor for calculating the degree of similarity for the same two cases, the information from these two cases may be evaluated as follows:  
                                                                                                       Case 1       Case 2                    Faults   Frequency   Faults   Frequency                            F1   10   F1   1           F2   1   F2   10                      
 
         [0030]    For this situation, the degree of similarity contributed by fault F1={fraction (1/10)}=0.1 and the degree of similarity contributed by fault F2={fraction (1/10)}=0.1  
         [0031]    One may use this information to modify or adjust the original sum calculation in Eq. (1) above. The original sum calculation was:  
         Sum=2=1( F 1)+1( F 2)  
         [0032]    One may adjust the contribution of each shared fault based on its respective degree of similarity taking into account information from the frequency column. The adjusted calculation becomes, Sum=0.2=0.1(F1)+0.1(F2).  
         [0033]    The foregoing exemplary calculations should illustrate that the value of Sum for determining the value of the similarity function for these straightforward examples can vary between 0.2 and 2, depending on whether or not one chooses to consider to a full extent the frequency of occurrence of common faults in the two cases being compared.  
         [0034]    Let us introduce the parameter a, which allows one to quantitatively modulate or calibrate the effect of fault frequency somewhere between the two diametrically opposite situations described above. That is, either ignoring fault frequency or fully considering fault frequency.  
         Let Sum= a +(1 −a )*Similarity based on Frequency.  
         [0035]    In the foregoing example, if the value of parameter a=0.7, then  
         Sum=[0.7+0.3*0.1]( F 1)+[0.7+0.3*0.1]( F 2)=1.46  
         [0036]    For a general situation, let us assume the ith case Ci comprises a plurality of faults Fi, let us further assume the jith case Cj comprises a plurality of faults Fj:  
         [0037]    For each fault Fi in {Ci U Cj},  
         [0038]    If Fiε{Ci}εFi {Cj} then sum=a+(1−a)*{[Min (count(Fi), count(Fj)]/[Max (count(Fi), count(Fj)]} 
         [0039]    a)  
         Similarity                 S     =           [   sum   ]     2         Count        [     {     F                 i     }     ]          X                   Count        [     {     F                 j     }     ]                                   
 
         [0040]    Where Count(Fi) is the number of distinct faults in the ith Case, and Count(Fj) is the number of distinct faults in the jth Case.  
         [0041]    This would result in an output (e.g., ordered listing) of all cases that have non-zero similarity (or at least have a similarity numerical value above a preset threshold value) relative to a new case (e.g., a ‘probecase’). An example of such an output may be as shown in Table 3 below, where each case happens to have the same degree of similarity relative to the probecase.  
               TABLE 3                                                                                
 
         [0042]    b) Ranking Function:  
         [0043]    In one exemplary embodiment, processor  10  further includes a module  16  for synthesizing the plurality of neighboring cases from the similarity function module  14  into a ranked output of cases (e.g., a relative ranking of cases). Since, in general, the output of the similarity function module is a list of neighboring cases, it is plausible that at least some of these cases may have the same repair code or recommendation associated with them. This is especially true if the new case is of a type that is frequently observed or detected. An example of such an output exhibiting cases with varying degrees of similarity is shown below in Table 4.  
                                         TABLE 4                           Before Rollup                Probecase: 132 185 1681 SS6 - Traction Motor Speed Sensor 6            Neighbors                100.0% 1345 185 1681 SS6 - Traction Motor Speed Sensor           100.0% 1788 185 1681 SS6 - Traction Motor Speed Sensor           100.0% 1820 185 1681 SS6 - Traction Motor Speed Sensor           100.0% 2990 185 1681 SS6 - Traction Motor Speed Sensor           81.0% 1705 5303 1520 CGS - Air Compressor Switch           60.0% 1915 185 1681 SS6 - Traction Motor Speed Sensor           57.0% 2560 185 1681 SS6 - Traction Motor Speed Sensor           56.0% 0715 185 1681 SS6 - Traction Motor Speed Sensor           56.0% 2944 185 1681 SS6 - Traction Motor Speed Sensor           50.0% 2312 185 1681 SS6 - Traction Motor Speed Sensor           50.0% 2882 185 1681 SS6 - Traction Motor Speed Sensor           50.0% 2905 185 1872 TM6 - Traction Motor (AC)           33.0% 1179 185 1681 SS6 - Traction Motor Speed Sensor           32.0% 4284 185 1681 SS6 - Traction Motor Speed Sensor                      
 
         [0044]    In order to process the output from the similarity function module  14  into one that selectively categorizes distinct diagnoses, one may use a ranking function, also colloquially referred to as a “rollup function.” The basic concept behind the rollup function is to perform a discounted voting solution to condense multiple cases pointing to the same diagnosis and boost their relative rank up and associate a more statistically meaningful confidence level for such cases. Since the voting is aggregated, it is possible that a final aggregated result for a given case may be greater than 100%. This may mean that the new case not only matches one single archived case, but also matches well with many archived cases. See, for example, Table 5 that includes an exemplary listing condensing the rankings for the distinct diagnosis identified in Table 4.  
                         TABLE 5                           After Rollup                285.0% 1345 185 1681 SS6 - Traction Motor Speed Sensor 6           81.0% 1705 5303 1520 CGS - Air Compressor Gov Press Switch           50.0% 2905 185 1872 TM6 - Traction Motor (AC)                      
 
         [0045]    In one exemplary embodiment, the rollup algorithm may comprise the following instructions:  
         [0046]    Rci=repair code for case at ranking i.  
         [0047]    Mi=Match percentage for case at rank i.  
         [0048]    N=total number of neighbor cases.  
         [0049]    β=damping factor  
         [0050]    For (i=1; i&lt;n; i++)  
         [0051]    {for (j=i+1; j&lt;=n; j++)} 
         [0052]    {if ((Rci=Rcj) and Neighbor j is not disabled)} 
         [0053]    {Mi=Mi+1/(j−i+β)*Mj; Disable Neighbor j} 
         [0054]    The same process can be repeated for assessing the ranking by recommendations in lieu of repair code.  
         [0055]    Intuitive Plain English Explanation of the Rollup Function:  
         [0056]    There are at least two basic ways for a recommendation to climb (or to “rollup”) to the top of the list. The first would be to have a very high match percentage, indicating that there is an excellent match. See for example in Table 4 the recommendations with 100 percent match. However, this begs the question: What does one do in situations when one has to decide, for example, between a single recommendation R1 with a relatively high numerical match (e.g., a 0.9 match) and several recommendations with a relatively lower numerical match (e.g., 10 matched recommendations of type R2 with a 0.75 match)? One would want to integrate this information and provide a combined or partial credit for these types of situations. That is, one would like to quantitatively account for a broad spectrum of situations, such as a) situations with relatively high numerical match with one (or just a few) recommendation/s, and b) situations with a relatively lower numerical match but with a relatively large number of past occurrences. That is, situations with a relatively lower numerical match yet based on substantial precedential value from previous cases. This combined crediting is what the rollup function is configured to perform.  
         [0057]    Let us assume a raw match output as in Table 6 below:  
                                     TABLE 6                       Rank   Recommendation   Degree of Match                                1   R1   0.71       2   R2   0.7       3   R3   0.5       4   R4   0.4                  
 
         [0058]    One would want to reflect the fact that recommendation R2 is found twice (e.g., at Ranks 2 and 4), and thus give recommendation R2 credit for that fact. In this example, one may perform this adjustment by combining with the Degree of Match of repair R2 at Rank 2, the degree of match of repair R2 at Rank 4, reduced by a discounting factor. In this example, this factor would be 1/(difference in ranks+degree of damping).  
         [0059]    Assuming the degree of damping is 3, then the computation of the combined relative ranking becomes  
         1/(4−2+3)=0.20  
         [0060]    So the degree of match of R2 at rank2 will be updated as=0.7+(0.20)*(0.4)=0.78  
         [0061]    While the preferred embodiments of the present invention have been shown and described herein, it will be obvious that such embodiments are provided by way of example only. Numerous variations, changes and substitutions will occur to those of skill in the art without departing from the invention herein. Accordingly, it is intended that the invention be limited only by the spirit and scope of the appended claims.