Abstract:
A multiple model data exploration system and method for running multiple machine-learning models simultaneously to understand and explore data. Embodiments of the system and method allow a user to gain a greater understanding of the data and to gain new insights into their data. Embodiments of the system and method also allow a user to interactively explore the problem and to navigate different views of data. Many different classifier training and evaluation experiments are run simultaneously and results are obtained. The results are aggregated and visualized across each of the experiments to determine and understand how each example is classified for each different classifier. These results then are summarized in a variety of ways to allow users to obtain a greater understanding of the data both in terms of the individual examples themselves and features associated with the data.

Description:
BACKGROUND 
       [0001]    Much of the machine learning (ML) research has focused on building more accurate or more efficient models. This research usually accesses the utility of a model based on the performance of the model. The quality of a model depends on several factors, including the correctness or trustworthiness of the training corpus, the discriminative value of the encoded features, and whether additional features or attributes can be encoded that further improve predictive performance. A model that has been trained using mislabeled data or data that has been encoded with non-descriptive features cannot be expected to be accurate. Automatically determining the characteristics of the data can be exceptionally difficult. However, with proper views on the data, human interaction based on domain knowledge and higher order reasoning can be used to interpret results and to build higher-quality models. 
         [0002]    Studies have shown that as a rule ML practitioners have trouble understanding relationships between data, attributes and models. As a result, usually there is usually little guidance on how to improve predictive performance. In fact, studies have shown that when their models do not work ML practitioners often spend an inordinate amount of time optimizing their classification algorithm rather than checking the quality of their data and features. 
         [0003]    The use of ensemble methods has become quite popular and there is a large body of work on combining results from multiple models. Simple rules such as majority vote, sum, product, maximum and minimum of classifier outputs have been successfully used and often produce results that are an improvement over a single model. Other useful ensemble techniques include critic-driven models. For example, some techniques automatically generate simple models and combine them to build more accurate ensemble models. However, the majority of the work in this space is aimed at learning ensembles to increase accuracy. 
         [0004]    Interactive machine learning systems are built with the viewpoint that humans and machines have complementary strengths. By creating a synergistic relationship between machines and humans, interactive machine learning systems can be used to train higher-quality models. A number of systems have followed this paradigm, but again the primary goal of this line of research has focused directly on generating higher-quality models. However, there may be times when a higher-quality model is not enough and tools that help a user to explore the data and to gain a deeper understanding of the data are useful. 
         [0005]    For example, programmers incorporating machine learning algorithms (or models) into their code often like to explore how well the models classify different data and which features might impact the models that are build. Too often, however, programmers vary the parameters for one specific model and do not thoroughly explore the space of algorithms, data, and features. A typical machine learning formulation first extracts features from labeled data and then subsequently splits the labeled data into a training and a testing set. The training set is used to create a model, and the testing set is used to evaluate the model. While there are techniques that combine the results of several classifiers into a single joint classifier, there is little or no work that attempts to combine hundreds of classifiers and visualize the results so that users can interpret the results. 
       SUMMARY 
       [0006]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
         [0007]    Embodiments of the multiple model data exploration system and method run multiple machine-learning models simultaneously to gain an understanding of and explore data. Embodiments of the system and method allow a user to gain an understanding of the data in terms of what are outliers in the data, what items are consistently confused or mislabeled, and the effect that different features have on classifying the items. In addition, embodiments of the system and method use visualizations of the results of the running the data through the models to allow a user to use their domain knowledge to gain new insights into their data 
         [0008]    Embodiments of the system and method also allow a user to interactively explore the problem and to navigate different views of data. By running many simultaneous experiments, where data is classified through different models, and results are aggregated and visualized across all the experiments, programmers can gain new insights into their data, existing features, and potential new features. Embodiments of the multiple model data exploration system and method simultaneously run many different classifier training and evaluation experiments. The resulting data then is aggregated to determine and understand how each example is classified for each different classifier. Embodiments of the system and method then summarize these results in a variety of ways which allows users to understand the data both in terms of the individual examples themselves and features associated with the data. 
         [0009]    It should be noted that alternative embodiments are possible, and that steps and elements discussed herein may be changed, added, or eliminated, depending on the particular embodiment. These alternative embodiments include alternative steps and alternative elements that may be used, and structural changes that may be made, without departing from the scope of the invention. 
     
    
     
       DRAWINGS DESCRIPTION 
         [0010]    Referring now to the drawings in which like reference numbers represent corresponding parts throughout: 
           [0011]      FIG. 1  is a block diagram illustrating a general overview of embodiments of the multiple model data exploration system and method implemented on a computing device. 
           [0012]      FIG. 2  is a flow diagram illustrating the general operation of embodiments of the multiple model data exploration system shown in  FIG. 1 . 
           [0013]      FIG. 3  is a flow diagram illustrating the operational details of embodiments of the execution module shown in  FIG. 1 . 
           [0014]      FIG. 4  is a flow diagram illustrating the operational details of embodiments of the statistics module shown in  FIG. 1 . 
           [0015]      FIG. 5  illustrates an overview of a scatter plot of incorrectness versus entropy illustrating one embodiment of the incorrectness versus entropy module shown in  FIG. 1 . 
           [0016]      FIG. 6  illustrates an exemplary example of the incorrectness versus entropy graph shown in  FIG. 5 . 
           [0017]      FIG. 7  is a flow diagram illustrating the operational details of embodiments of the label noise module shown in  FIG. 1 . 
           [0018]      FIG. 8  is a flow diagram illustrating the operational details of embodiments of the feature attribution module shown in  FIG. 1 . 
           [0019]      FIG. 9  is a flow diagram illustrating the operational details of embodiments of the feature generation module shown in  FIG. 1 . 
           [0020]      FIG. 10  illustrates an example of a suitable computing system environment in which embodiments of the multiple model data exploration system and method shown in  FIGS. 1-9  may be implemented. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    In the following description of embodiments of the multiple model data exploration system and method reference is made to the accompanying drawings, which form a part thereof, and in which is shown by way of illustration a specific example whereby embodiments of the multiple model data exploration system and method may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the claimed subject matter. 
       I. System Overview 
       [0022]      FIG. 1  is a block diagram illustrating a general overview of embodiments of the multiple model data exploration system  100  and method implemented on a computing device  110 . In general, embodiments of the multiple model data exploration system  100  and method input labeled data  115  and then simultaneously run different models and present the results to a user. The user is able to interact with the results to explore and understand the data in terms of what are outlier data, what items are consistently confused or mislabeled, and what effect the different features have on classifying the items. 
         [0023]    In particular, embodiments of the multiple model data exploration system  100  and method include an execution module  120 . Embodiments of the execution module  120  generate and simultaneously run different models to produce multiple model results  125 . These results are used by a visualization module  130  to visualize the results and present them to a user. 
         [0024]    Embodiments of the visualization module  130  include a statistics module  135 . Input to the statistics module  135  is an aggregated set of predicted labels  140  generated by embodiments of the execution module  120 . Embodiments of the statistics module  135  process the aggregated set of predicted labels  140  to obtain summary statistics  145 . 
         [0025]    Embodiments of the multiple model data exploration system  100  and method also include an incorrectness versus entropy module  150 . Embodiments of the module  150  include a label noise module  155  and a feature attribution module  160 . Embodiments of the label noise module  155  receive as input an incorrectness versus entropy graph  165  and allow verification of the labels to reduce label noise. Embodiments of the feature attribution module  160  allow a user to change feature attributes based on the visualized results of the incorrectness versus entropy graph  165 . A feature generation module  170  is included in embodiments of the multiple model data exploration system  100  and method. Embodiments of the feature generation module  170  facilitate a user exploring different features of the data and updating the features based on the results of the incorrectness versus entropy graph. This exploration includes exploring and understanding the data in terms of what data are outliers, what data are consistently confused, what data are mislabeled, and an effect that different features of the data have on classifying the data. 
       II. Operational Overview 
       [0026]      FIG. 2  is a flow diagram illustrating the general operation of embodiments of the multiple model data exploration system  100  shown in  FIG. 1 . The operation of embodiments of the system  100  and method begins by inputting a dataset containing labeled data (box  200 ). Next, multiple models are generated from the dataset (box  210 ). This generation of multiple models takes place such that each model is based on a different configuration. 
         [0027]    Embodiments of the system  100  and method then simultaneously run different classifier training and evaluation experiments using the multiple models (box  220 ). In some embodiments the multiple models and associated parameters are systematically varied during generation of the multiple models. In some embodiments this systematic variance yields an optimally-differentiated set of results. In other embodiments this systematic variance yields a set of results that matches constraints previously set by a user. A different set of predicted labels then is generated for each of the multiple models (box  230 ). Embodiments of the system  100  and method then aggregate each set of predicted labels (box  240 ). From these aggregated labels embodiments of the system  100  and method compute summary statistics (box  250 ). 
         [0028]    The summary statistics then are visualized (box  260 ). This visualization can use any number of visualization techniques to produce the visualized summary statistics. The user then examines the visualized summary statistics to gain an understanding and to explore the trends in the data (box  270 ). The next two steps are optional, as shown by the dotted line in  FIG. 2 . In some embodiments of the system  100  and method an optimal model is built from the multiple models (box  280 ). This building of the optimal model is based on the user&#39;s understanding and exploration of the data. Finally, in some embodiments of the system  100  and method the optimal model as determined by the user is output (box  290 ). 
       III. System and Operational Details 
       [0029]    Embodiments of the multiple model data exploration system  100  and method includes an execution step and a visualization step. In the execution step, embodiments of the system  100  and method take a dataset and generate multiple models. Each model is based on a different configuration and provides a new set of predicted labels for the data. The visualization step aggregates predicted labels, computes summary statistics, and visualizes the results. 
         [0030]    Embodiments of the system  100  and method also include an interactive visualization tool that allows specific visualizations and interactions to help facilitate correcting label noise, linking features and data, and generating insight for new features. The system and the operational details of embodiments of the multiple model data exploration system  100  and method now will be discussed. These embodiments include embodiments of the execution module  120 , the statistics module  135 , the label noise module  155 , the feature attribution module  160 , and the feature generation module  170 . 
       III.A. Execution Module 
       [0031]    In order to create a model a machine learning practitioner typically parses and segments raw data, compute features, split data into training and testing folds, and selects an algorithm. A single configuration of this process consists of algorithms and parameters for parsing, feature generation, splitting data, and building models. These configurations are modular and interchangeable. For instance, one feature generation technique can be switched out for another or parameters for a classification technique can be changed. 
         [0032]    A model provides labels for a portion of the dataset. Because it is generally a good idea to avoid training and testing on the same data, embodiments of the multiple model data exploration system  100  and method train multiple models with different training and testing splits in order to generate predicted labels for the entire dataset. Embodiments of the system  100  and method achieve coverage for the entire dataset by using random cross validation. 
         [0033]    In this document, the word “trial” is used to indicate a set of models generated by configurations that differ only in how data is split into testing and training sets. These differences in splits are generated by a cross validation scheme. A trial is essentially a cross validation experiment and as such provides predicted labels for the entire dataset. 
         [0034]      FIG. 3  is a flow diagram illustrating the operational details of embodiments of the execution module  120  shown in  FIG. 1 . The method begins by inputting an initial set of tuples from the labeled data (box  300 ). These tuples correspond to labels for the labeled data. Next, a set of trials are generated from the initial set of tuples (box  310 ). Each trial in the set of trials that was generated then is executed (box  320 ). 
         [0035]    Embodiments of the execution module  120  then generate a new set of tuples from the executed trials (box  330 ). This new set of tuples corresponds to predicted labels. In other words, by varying the configurations and generating multiple trials, embodiments of the module  120  generate a set of predicted labels for each example. The intuition is that each configuration will have its own systematic bias, and by using multiple configurations embodiments of the module  120  in effect marginalize the effect of these biases. 
         [0036]    Embodiments of the module  120  systematically vary different parameters and algorithms to generate new configurations (such as parameters sweeps over certain parameters for the classification algorithm). The specific algorithms and parameters vary based on the dataset. Next, embodiments of the module  120  aggregate the set of predicted labels (box  340 ). Finally the aggregated set of predicted labels is output (box  350 ). 
         [0037]    Mathematically, embodiments of the execution module  120  take as input, a set of tuples (x i , y i ), where x is the i th  example from a set of examples X and y i  is the label for that example. Embodiments of module  120  then take these tuples and generate a set of trials. These trials are then executed. This produces a new set of tuples of the form (x i , y i , t j ,  γ   i,j ) where t j  is the j th  trial from the set of trials T and  γ   i,j  is the predicted label generated for example x i . Within the (x i , y i , t j ,  γ   i,j ) tuples the predicted labels are connections between the examples and the trials. 
       III.B. Visualization Module 
       [0038]    Embodiments of the multiple model data exploration system  100  and method include a visualization module  130  that helps a user explore and interpret the output of the execution phase. Embodiments of the visualization module  130  are built to help explore the interactions between examples and models. Examples provide insight about models and vice versa. Embodiments of the visualization module  130  include specific visualizations and interactions that a user to understand data. 
       III.B.1. Statistics Module 
       [0039]    Embodiments of the visualization module  130  include a statistics module  135  to aid in computing summary statistics. More specifically, embodiments of the statistics module  135  use the tuples computed by embodiments of the execution module  120  to compute summary statistics for examples, sets of examples, trials, and sets of trials. For instance, embodiments of the statistics module  135  compute accuracy of a single trial by examining each of the tuples that include that trial and calculating the percentage of correctly classified tuples. Accuracy computed for one trial can be used to understand the set of trials. For example, to see the distribution of accuracies embodiments of the statistics module  135  can bucket trials into different accuracy ranges to create a histogram of trials and accuracies. 
         [0040]      FIG. 4  is a flow diagram illustrating the operational details of embodiments of the statistics module  135  shown in  FIG. 1 . The method begins by inputting the tuples for the labeled data as well as the predicted labels (box  400 ). Next, embodiments of the module  135  compute summary statistics for examples, sets of examples, trials, and set of trials (box  410 ). A model accuracy then is determined by computing a percentage of correctly-classified tuples (box  420 ). 
         [0041]    Since machine learning practitioners are often familiar with the data they are seeking to classify, they can leverage their domain knowledge by inspecting the examples. Embodiments of the statistics module  135  can use information generated by trials (such as the predicted label) to compute statistics that provide additional information about the example. Embodiments of the statistics module  135  include two statistics computed over trials: (1) incorrectness; and (2) label entropy. 
         [0042]    In particular, embodiments of the statistics module  135  compute an incorrectness from the model accuracy (box  430 ). Incorrectness is the percentage of trials that incorrectly classified an example. Let 1{z} be the indicator function, which is zero when z is false and one when z is true. Mathematically, incorrectness can be computed as follows, 
         [0000]    
       
         
           
             
               inc 
                
               
                 ( 
                 
                   x 
                   i 
                 
                 ) 
               
             
             = 
             
               
                 
                   ∑ 
                   j 
                 
                 
                   
                      
                     T 
                   
                    
                 
               
                
               
                 
                   
                     1 
                      
                     
                       { 
                       
                         
                           y 
                           i 
                         
                         = 
                         
                           
                             y 
                             _ 
                           
                           
                             i 
                             , 
                             j 
                           
                         
                       
                       } 
                     
                   
                   
                      
                     X 
                      
                   
                 
                 . 
               
             
           
         
       
     
         [0043]    For multi-class problems it is desirable to see if trials agree on the predicted label for an example. Note that this is different than incorrectness, as trials can agree on the wrong label. It is not only important to know that trials disagree, but it is also important to know how the disagreements vary. For example, in multi-class problems an example may be stable (where it has the same predicted label over all of the trials), or it may be unstable (where trials give a wide range of possible labels). A good measure of stability is the entropy of the distribution of labels. Embodiments of the statistics module  135  compute a label accuracy (box  440 ). Let L be the set of possible labels. Mathematically, entropy can be computed as follows, 
         [0000]    
       
         
           
             
               H 
                
               
                 ( 
                 
                   x 
                   i 
                 
                 ) 
               
             
             = 
             
               - 
               
                 
                   ∑ 
                   
                     l 
                     ∈ 
                     L 
                   
                 
                  
                 
                   
                     
                       
                         ∑ 
                         j 
                         
                            
                           T 
                            
                         
                       
                        
                       
                         1 
                          
                         
                           { 
                           
                             
                               
                                 y 
                                 _ 
                               
                               
                                 i 
                                 , 
                                 j 
                               
                             
                             = 
                             l 
                           
                           } 
                         
                       
                     
                     
                        
                       T 
                        
                     
                   
                    
                   log 
                    
                   
                       
                   
                    
                   
                     
                       
                         
                           ∑ 
                           j 
                           
                              
                             T 
                              
                           
                         
                          
                         
                           1 
                            
                           
                             { 
                             
                               
                                 
                                   y 
                                   _ 
                                 
                                 
                                   i 
                                   , 
                                   j 
                                 
                               
                               = 
                               l 
                             
                             } 
                           
                         
                       
                       
                          
                         T 
                          
                       
                     
                     . 
                   
                 
               
             
           
         
       
     
         [0000]    Embodiments of the module  135  then output summary statistics including correctness and label entropy (box  450 ). 
       III.B.2. Incorrectness Versus Entropy Module 
       [0044]    Embodiments of the multiple model data exploration system  100  and method include an incorrectness versus entropy module  150  that allows a user to quickly explore a wide variety of visualizations looking at different statistics and how they interact.  FIG. 5  illustrates an overview of a scatter plot of incorrectness versus entropy illustrating one embodiment of the incorrectness versus entropy module  150 . The embodiment shown in  FIG. 5  is one visualization that can help users gain an understanding of the data. 
         [0045]    In particular, referring to  FIG. 5 , an incorrectness versus entropy graph  500  is divided into three areas. Each of the three area corresponds to different types of examples. The three areas are a canonical area  510 , an unsure area  520 , and a confused area  530 . The canonical area  510  contains examples having low entropy and low incorrectness, which means that each of the models agrees on a label and that label is the actual label. In other words, these are the examples that are unambiguously correct. 
         [0046]    The unsure area  520  contains examples that have a high entropy. This means that the models cannot agree on the predicted label. This disagreement may stem from deficiencies in the data. For instance, the feature space may not be good enough to disambiguate between examples or the data may be inherently ambiguous. 
         [0047]    The confused area  530  contains examples that have low entropy and high incorrectness. This means that these examples are those where the models agree on a predicted label, but that predicted label does not agree with the actual, label. Agreement between trials may indicate an error in the actual label, and therefore confused examples might be a place to look for mislabeled data. 
         [0048]      FIG. 6  illustrates an exemplary example of the incorrectness versus entropy graph shown in  FIG. 5 . In particular,  FIG. 6  illustrates a graph  600  plotting incorrectness versus entropy using a plurality of data points. It can be seen from  FIG. 6  that some of the data falls with in the canonical area  510 , some data falls within the unsure area  520 , and some data falls within the confused area  530 . The user is able to obtain information from the graph  600  based on where the data falls on the graph  600 . 
         [0000]    III.B.2.i. Label Noise Module 
         [0049]    Embodiments of the incorrectness versus entropy module  150  include a label noise module  155 .  FIG. 7  is a flow diagram illustrating the operational details of embodiments of the label noise module shown in  FIG. 1 . In general,  FIG. 7  illustrates the process used to find mislabeled examples. As shown in  FIG. 7 , the operation of embodiments of the module  155  begin by inputting a set of trials (box  700 ). Next, one of the trials from the set of trials is selected (box  705 ). 
         [0050]    Embodiments of label noise module  155  filters trials to keep only configurations that provide high accuracy. This generates a set of filtered trials. In particular, referring to  FIG. 7 , a determination is made as whether the selected trial provides high accuracy (box  710 ). If so, then the selected trial is added to a set of filtered trials (box  715 ). If not, then the trial is discarded (box  720 ). 
         [0051]    Next, a determination is made as to whether there are more trials in the set of trials (box  725 ). If so, then another trial is selected (box  730 ) and the process repeats from the determination as to whether the selected trial provides high accuracy (box  710 ). Otherwise, if there are no more trials, a set of summary statistics (like incorrectness and entropy) are computed from the set of filtered trials (box  735 ). This means that applying the filter changes the values of incorrectness and entropy. By removing low accuracy trials, embodiments of the label noise module  155  remove noise that might adversely affect statistics. 
         [0052]    Embodiments of the label noise module  155  then allow a user to examine the incorrectness and entropy graph (box  740 ). Embodiments of the module  155  also allow the user to select the confused area of the graph by interacting with the scatter plot of incorrectness versus entropy (box  745 ). In some embodiments of the module  155 , the user can “rubber-band” over the region of interest to select and apply a filter to hone in on examples as the user desires. Users can inspect these examples and leverage their domain knowledge to verify the actual label (box  750 ). Embodiments of the module  155  provide a grid view that allows users to quickly view and verify inherently visual examples. 
         [0000]    III.B.2.ii. Feature Attribution Module 
         [0053]    Unsure examples are examples where the models do not agree on the predicted label. One reason for this is that the features are not descriptive enough for models to reliably differentiate between closely related classes. As a result, these examples may be able to help us understand the discriminative capabilities of existing features and leverage human knowledge to generate more discriminative features. 
         [0054]    Embodiments of the incorrectness versus entropy module  150  include a feature attribution module  160 .  FIG. 8  is a flow diagram illustrating the operational details of embodiments of the feature attribution module  160  shown in  FIG. 1 . As shown in  FIG. 8 , the operation of embodiments of the feature attribution module  160  begin by inputting two incorrectness versus entropy graphs (box  800 ). A first of the graph is selected for before a feature set was added (box  810 ); and a second incorrectness versus entropy graph is selected that is for after the feature set was added (box  820 ). 
         [0055]    Next, embodiments of the module  160  examine the first incorrectness versus entropy graph to obtain unsure examples from before the feature set was added (box  830 ). Moreover, the second incorrectness versus entropy graph is examined to obtain canonical examples from after the feature set was added (box  840 ). Embodiments of the module  160  then filter a space of examples to include an intersection of the unsure examples from before the feature set was added and the canonical examples from after the feature set was added (box  850 ). In effect this query says: “show me the examples that you were unsure about before the feature, but are confident about now.” Finally, embodiments of the module  160  then inspect these examples to form links between a user&#39;s understanding of the data and the machine learning algorithm&#39;s understanding of the data (box  860 ). 
       III.B.3. Feature Generation Module 
       [0056]    Embodiments of the multiple model data exploration system  100  and method include a feature generation module  170 .  FIG. 9  is a flow diagram illustrating the operational details of embodiments of the feature generation module  170  shown in  FIG. 1 . The process begins by inputting the unsure examples that were obtained previously (box  900 ). These unsure examples than are examined to understand which examples the models disagree on (box  905 ). However, unlike feature attribution there is not a set of after features. Instead, the task is to use domain knowledge to generate a set of discriminative features that will describe the data more accurately. As shown in  FIG. 9 , a set of discriminative features is generated that describes the data from the unsure examples that the models disagree on (box  910 ). 
         [0057]    Embodiments of the feature generation module  170  then sum together each of the confusion matrices for each of the trials to generate an aggregate confusion matrix (box  915 ). The aggregate confusion matrix helps organize the examples in the unsure region. This aggregate confusion matrix is a logical extension of a single confusion matrix to a set of many trials. Next, embodiments of the feature generation module  170  normalize across each of the rows (in other words, the actual label) in the confusion matrices so that each row becomes a distribution of predicted labels for a class (box  920 ). In addition, each row is added to the aggregate confusion matrix. 
         [0058]    The aggregate confusion matrix then is used to organize examples in an unsure region (box  925 ). The aggregate confusion matrix changes when filters are added (box  930 ), as the process of filtering examples reduces the examples used to create the aggregate matrix and changes the distributions. The distributions of predicted labels in the unsure region may vary widely from the overall distribution. In some embodiments of the module  170  each distribution of predicted labels for a class is color coded in order to highlight areas of highest confusion (box  935 ). 
         [0059]    In addition, embodiments of the module  170  allow a user to hover over a cell in the aggregate confusion matrix and then have the user be shown an example of the actual class and an example of the predicted class most similar to the actual class (box  940 ). In addition, embodiments of the module  170  allow the user to change the set of discriminative features based on the aggregate confusion matrix to update the set of discriminative features (box  945 ). In this manner, users can leverage their domain knowledge to compare examples, find differences, and encode those differences as discriminative features. Embodiments of the module  170  then output the set of discriminative features (box  950 ). 
       IV. Exemplary Operating Environment 
       [0060]    Embodiments of the multiple model data exploration system  100  and method are designed to operate in a computing environment. The following discussion is intended to provide a brief, general description of a suitable computing environment in which embodiments of the multiple model data exploration system  100  and method may be implemented. 
         [0061]      FIG. 10  illustrates an example of a suitable computing system environment in which embodiments of the multiple model data exploration system  100  and method shown in  FIGS. 1-9  may be implemented. The computing system environment  1000  is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment  1000  be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. 
         [0062]    Embodiments of the multiple model data exploration system  100  and method are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with embodiments of the multiple model data exploration system  100  and method include, but are not limited to, personal computers, server computers, hand-held (including smartphones), laptop or mobile computer or communications devices such as cell phones and PDA&#39;s, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. 
         [0063]    Embodiments of the multiple model data exploration system  100  and method may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Embodiments of the multiple model data exploration system  100  and method may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices. With reference to  FIG. 9 , an exemplary system for embodiments of the multiple model data exploration system  100  and method includes a general-purpose computing device in the form of a computer  1010 . 
         [0064]    Components of the computer  1010  may include, but are not limited to, a processing unit  1020  (such as a central processing unit, CPU), a system memory  1030 , and a system bus  1021  that couples various system components including the system memory to the processing unit  1020 . The system bus  1021  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus. 
         [0065]    The computer  910  typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by the computer  1010  and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. 
         [0066]    Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer  1010 . By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media. 
         [0067]    The system memory  1030  includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM)  1031  and random access memory (RAM)  1032 . A basic input/output system  1033  (BIOS), containing the basic routines that help to transfer information between elements within the computer  1010 , such as during start-up, is typically stored in ROM  1031 . RAM  1032  typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit  1020 . By way of example, and not limitation,  FIG. 10  illustrates operating system  1034 , application programs  1035 , other program modules  1036 , and program data  1037 . 
         [0068]    The computer  1010  may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,  FIG. 10  illustrates a hard disk drive  1041  that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive  1051  that reads from or writes to a removable, nonvolatile magnetic disk  1052 , and an optical disk drive  1055  that reads from or writes to a removable, nonvolatile optical disk  1056  such as a CD ROM or other optical media. 
         [0069]    Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM; solid state ROM, and the like. The hard disk drive  1041  is typically connected to the system bus  1021  through a non-removable memory interface such as interface  1040 , and magnetic disk drive  1051  and optical disk drive  1055  are typically connected to the system bus  1021  by a removable memory interface, such as interface  1050 . 
         [0070]    The drives and their associated computer storage media discussed above and illustrated in  FIG. 10 , provide storage of computer readable instructions, data structures, program modules and other data for the computer  1010 . In  FIG. 10 , for example, hard disk drive  1041  is illustrated as storing operating system  1044 , application programs  1045 , other program modules  1046 , and program data  1047 . Note that these components can either be the same as or different from operating system  1034 , application programs  1035 , other program modules  1036 , and program data  1037 . Operating system  1044 , application programs  1045 , other program modules  1046 , and program data  1047  are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information (or data) into the computer  1010  through input devices such as a keyboard  1062 , pointing device  1061 , commonly referred to as a mouse, trackball or touch pad, and a touch panel or touch screen (not shown). 
         [0071]    Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, radio receiver, or a television or broadcast video receiver, or the like. These and other input devices are often connected to the processing unit  1020  through a user input interface  1060  that is coupled to the system bus  1021 , but may be connected by other interface and bus structures, such as, for example, a parallel port, game port or a universal serial bus (USB). A monitor  1091  or other type of display device is also connected to the system bus  1021  via an interface, such as a video interface  1090 . In addition to the monitor, computers may also include other peripheral output devices such as speakers  1097  and printer  1096 , which may be connected through an output peripheral interface  1095 . 
         [0072]    The computer  1010  may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer  1080 . The remote computer  1080  may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer  1010 , although only a memory storage device  1081  has been illustrated in  FIG. 10 . The logical connections depicted in  FIG. 10  include a local area network (LAN)  1071  and a wide area network (WAN)  1073 , but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. 
         [0073]    When used in a LAN networking environment, the computer  1010  is connected to the LAN  1071  through a network interface or adapter  1070 . When used in a WAN networking environment, the computer  1010  typically includes a modem  1072  or other means for establishing communications over the WAN  1073 , such as the Internet. The modem  1072 , which may be internal or external, may be connected to the system bus  1021  via the user input interface  1060 , or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer  1010 , or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,  FIG. 10  illustrates remote application programs  1085  as residing on memory device  1081 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. 
         [0074]    The foregoing Detailed Description has been presented for the purposes of illustration and description. Many modifications and variations are possible in light of the above teaching. It is not intended to be exhaustive or to limit the subject matter described herein to the precise form disclosed. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims appended hereto.