# Patent

## Title
Visualizing a relationship of attributes using a relevance determination process to select from candidate attribute values

## Abstract

For plural categorical values of a first attribute, more relevant categorical values of a second attribute are selected from among candidate categorical values of the second attribute, where the selecting uses a relevance determination process that considers frequencies of occurrence of respective pairs of the categorical values of the first and second attributes. A visualization that includes groups of cells corresponding to the respective pairs of categorical values of the first and second attributes is generated. At least one of the groups includes cells assigned visual indicators based on values of a third attribute.

## Background
BACKGROUND OF THE INVENTION
With traditional techniques of visualizing attributes (or variables) of data records, it can be difficult to understand the relationship of the attributes. There can be a relatively large number of data records, and certain attributes of the data records can be associated with a relatively large number of categorical values. When a relatively large amount of information is to be visualized, the result can be a cluttered visualization where users have difficulty in understanding the visualized information.
BRIEF SUMMARY OF THE INVENTION
As described herein, for a plurality of categorical values of a first attribute, more relevant categorical values of a second attribute may be selected from among candidate categorical values of the second attribute, where the selecting may utilize a relevance determination process that considers frequencies of occurrence of respective pairs of the categorical values of the first and second attributes. A visualization that may include groups of cells corresponding to the respective pairs of categorical values of the first and second attributes may be generated. At least one of the groups may include cells assigned visual indicators based on values of a third attribute.



BRIEF DESCRIPTION OF THE DRAWINGS
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
Some embodiments are described with respect to the following figures:
FIG. 1 is a graphical view of an example visualization screen that depicts a relationship among attributes, in accordance with some implementations;
FIG. 2 is a flow diagram of a visualization process, in accordance with some implementations;
FIG. 3 is a flow diagram of a relevance determination process, in accordance with further implementations;
FIG. 4A is a flow diagram of a feature vector matrix generation process, in accordance with some implementations;
FIG. 4B illustrates an example feature vector matrix, in accordance with some implementations;
FIGS. 5 and 6 are graphical views of additional example visualization screens according to some implementations; and
FIG. 7 is a block diagram of a system that is able to incorporate some implementations.



DETAILED DESCRIPTION
Large amounts of data may not be effectively visualized in a traditional graphical visualization. There can be relatively large amounts of data records, and the data records may have attributes associated with relatively large numbers of categorical values. One example attribute is a Drug attribute, which can have many categorical values representing different drugs. Another example attribute is a Reaction attribute, which can have many categorical values representing respective reactions to drugs. A categorical value of an attribute is represented by a character string. For example, a categorical value of the Drug attribute is represented by the name of a drug.
Visualizing all of the possible categorical values of the Drug attribute and Reaction attribute that are found in a relatively large number of data records can result in a cluttered visualization, which can make it difficult for a user to understand the relevance between the categorical values of the Drug and Reaction attributes. For example, given a large number of categorical values of a given attribute, traditional visualization techniques do not allow for the depiction of the more relevant categorical values of the given attribute with respect to categorical values of another attribute.
For example, in the context of the Drug and Reaction attributes discussed above, it may be desirable to separate relevant reactions from irrelevant reactions to various drugs. For example, a particular reaction to a particular drug may occur with relatively low frequency, which is an indication that this drug-reaction pair is less important and thus should not be visualized since it would be wasteful of valuable visualization space.
In accordance with some implementations, to more effectively depict attributes (and their relative relevance) of data records, a cell-based visualization is provided that uses a relevance determination process (discussed further below) for identifying relevant categorical values of a given attribute with respect to categorical values of another attribute. The cell-based visualization can plot cells (also referred to as pixels) representing respective events at points on a visualization screen. An event (e.g. corresponding to a drug-reaction pair) is expressed by a corresponding data record. An example includes a visualization screen 100 shown in FIG. 1. The visualization screen 100 has a horizontal axis (x axis) and a vertical axis (y axis), which represent respective first and second attributes. The visualization screen 100 includes an x-y cell plane. In the example of FIG. 1, the x attribute is a Drug attribute, and the y attribute is a Reaction attribute. A cell (or pixel) represents a respective event and corresponds to a respective pair of a categorical value of the x attribute and a categorical value of the y attribute in the respective data record. The cell is plotted at a position of the visualization screen 100 based on the categorical value of the x attribute and the categorical value of the y attribute in the respective data record.
A cell (or pixel) refers to a graphical element that is used for representing an event that corresponds to an x-y value pair. A cell (or pixel) can be in the form of a dot or graphical structure of any other shape. An event is expressed by a data record, and a data record can refer to any discrete unit of data that is received by a system. Each data record can have multiple attributes that represent different aspects of an event. For example, in the context of analysis relating to a drug trial, the events can include consumption of various different drugs by individuals, along with the corresponding reactions. The information collected in the drug trial can include reactions of the individuals to consumption of the drugs, as well as the corresponding outcomes. As an example, a data record can include the following attributes: Drug, Reaction, and Outcome (among other attributes). The Drug attribute can have multiple categorical values that represent different drugs. The Reaction attribute can have different categorical values that represent different reactions by individuals. The Outcome attribute can have multiple categorical values that represent different outcomes associated with respective drug-reaction pairs.
The categorical values of the Drug attribute can include drug names that identify different types of drugs that are the subject of analysis. Similarly, the categorical values of the Reaction attribute and Outcome attribute can represent different reactions and different outcomes, respectively, associated with taking the drugs.
In the visualization screen 100 of FIG. 1, an x coordinate represents the different categorical values of the Drug attribute, while a y coordinate represents the different categorical values of the reaction attribute. Each cell is plotted in the graphical visualization 100 at an x-y coordinate that corresponds to a categorical value of the x attribute (in this case the Drug attribute) and a categorical value of the y attribute (in this case the Reaction attribute) of the corresponding data record.
The cells in the graphical visualization 100 can also be assigned visual indicators (e.g. different colors, different gray scale indicators, different patterns, etc.) according to values of a third attribute (different from the x and y attributes) in the respective data records. In the example of FIG. 1, the third attribute is the Outcome attribute. Different colors are assigned to the cells in FIG. 1 according to different categorical values of the Outcome attribute. In a different example, the colors assigned to the cells can be based on numerical attributes of a different attribute. A color scale 102 in the graphical visualization 100 maps different values of the Outcome attribute to different colors. In an example, the different values of the outcome attribute can include the following: a DE value (which represents death as the outcome), an LT value (which represents a life-threatening condition as the outcome), an HO value (which represents hospitalization as the outcome), a DS value (which represents disability as the outcome), a CA value (which represents a congenital anomaly as the outcome), an RI value (which represents intervention as the outcome), and an OT value (which represents an “other” outcome). Although specific values of the Outcome attribute are shown in FIG. 1, it is noted that in other examples, other values of the Outcome attribute can be used.
Moreover, even though the example graphical visualization 100 depicts a visualization of the Drug attribute, Reaction attribute, and Outcome attribute, it is noted that the graphical visualization 100 can similarly be used for representing a relationship among other attributes in other examples.
Two example groups of cells are identified as 104 and 106 in FIG. 1. The group 106 of cells includes just cells assigned the red color, which corresponds to the Outcome attribute having the DE value. On the other hand, the group 104 of cells includes both cells assigned the red color and cells assigned the green color (where the green color corresponds to the HO value). The cells in the first group 104 are plotted in a first region of the visualization screen 100, while the cells in the second group are plotted in a second, discrete region of the visualization screen 100.
Each group of cells corresponds to events that share a common pair of categorical values of the x attribute and y attribute (in other words, share the same x-y value pair). Traditionally, points that represent events that share the same x-y value pair may be plotted at the same position in a visualization screen, which results in occlusion of the multiple points representing the events sharing the same x-y value pair. In contrast, in accordance with some implementations, instead of plotting cells representing events that share the same x-y value pair at the same position in the graphical visualization 100, the cells are placed at different nearby positions close to each other, to form a group of the cells representing the events sharing the same x-y value pair. The cells in this group are placed in a respective region of the graphical visualization 100, where the region can have a circular shape, an oval shape, an ellipsoid shape, or any other shape.
Within each region, the cells are sorted according to the values of the third attribute (which in the example is the Outcome attribute). Sorting the cells of a region refers to placing the cells in the region according to the values of the third attribute. By performing the sorting, cells are positioned in proximity to each other according to the values of the third attribute, such that cells that share or have relatively close values of the third attribute are placed closer to each other than cells that have greater differences in the values of the third attribute.
The sorting allows sub-groups of cells to be formed within each group. Thus, for example, in group 104 in FIG. 1, a first sub-group includes the cells assigned the red color, while a second sub-group includes cells assigned the green color. The cells assigned the green color in the group 104 are placed in a ring around the cells assigned the red color. By sorting the cells such that respective sub-groups are visible, a user can more easily determine the relative amounts of cells assigned to different values of the third attribute.
Although the various groups of cells depicted in the graphical visualization 100 of FIG. 1 are for the most part placed in discrete regions that do not overlap each other, there can be instances where large amounts of data records at neighboring x-y value pairs may result in some overlap of cells for different x-y value pairs. For example, a multi-group cluster 108 has cells corresponding to multiple x-y value pairs. The multi-group cluster 108 corresponds to a relatively large number of data records that share a common x value, but span six neighboring y values. In other words, the data records in the multi-group cluster 108 cover six reactions to a corresponding drug.
In the multi-group cluster 108, there are a relatively large number of data records that have the Outcome attribute assigned the OT value (brown cells) and DS value (purple cells). The cells assigned the brown color (Outcome attribute having the OT value) are provided in an outer oval ring in the multi-group cluster 108. The cells assigned the purple color (Outcome attribute having the DS value) are provided in another oval ring inside the outer oval ring. Note that in the region occupied by the multi-group cluster 108 of cells, there are smaller numbers of cells that are assigned the DE value (red cells) and HO value (green cells) of the Outcome attribute. As a result, the red cells and green cells can be provided in sub-regions within the region representing the multi-group cluster 108.
The visualization screen 100 can be an interactive visualization screen. A user can move a cursor (such as by using a user input device) over any of the cells depicted in the visualization screen 100. When the cursor is moved over a particular cell, a pop-up dialog box, such as dialog box 110, is presented to provide detailed information regarding the selected cell. In the example dialog box 110, the categorical value (Metoclorpramide) of the Drug attribute, the categorical value (Nervous) of the Reaction attribute, and the categorical value (Hospitalization) of the Outcome attribute are depicted. Additionally, the number of cells (5,642) that share the specific x-y value pair corresponding to the selected cell are also depicted.
Although reference is made to user interaction that moves a cursor over a cell, it is noted that in other examples, other interactive inputs can be provided, such as a touch on a touchscreen display device, and so forth.
FIG. 2 is a flow diagram of a visualization process according to some implementations. For multiple categorical values of a first attribute (e.g. the x attribute shown in FIG. 1), more relevant categorical values of a second attribute (e.g. y attribute) are selected (at 202) from candidate second attribute values using a relevance determination process that considers frequencies of occurrence of respective pairs of the values of the first and second attributes. The candidate second attribute values are all possible categorical values of the second attribute. Further details regarding the relevance determination process are discussed further below. By using the relevance determination process, just a subset of all possible y attribute categorical values can be selected the relevance determination process selects those y attribute values (from among the candidate y attribute values) that are deemed to be more relevant to the x attribute values, based on frequencies of occurrence of respective x-y value pairs (discussed further below). For example, a y attribute value is deemed to be more relevant to a given x attribute value if a relevance value derived based on the frequency of occurrence of the pair of x and y attribute values exceeds a specified threshold.
The visualization process of FIG. 2 next generates (at 204) a visualization screen, such as the visualization screen 100 of FIG. 1, that includes groups of cells corresponding to respective value pairs of the first and second attributes. Each group includes cells assigned visual indicators based on values of a third attribute.
In laying out the cells to generate the visualization screen, all cells representing data records that have the same x-y value pair are placed in a circle or oval (e.g. 104, 106, or 108 in FIG. 1) or other region around a first central cell that is located at the x-y position. The overlapping data records that share the same x-y value pair are sorted according to values of the third attribute and placed around the x-y position at un-occupied positions in the circle, oval, or other region.
As an example, a first cell representing a first received data record that has a given x-y value pair is placed at the corresponding x-y position in the visualization screen 100. A second cell representing a second data record that has the given x-y value pair is then placed at another x-y position near the first cell. A third cell representing a third data record that has the given x-y value pair is then placed at a nearby position near the first and second cells. As part of placing the cells, the cells are also sorted according to values of a third attribute. This process is re-iterated for each subsequent data record that has the given x-y value pair.
FIG. 3 is a flow diagram of the relevance determination process used in task 202 for selecting more relevant categorical values of the second attribute y with respect to categorical values of the first attribute x. For an x-y value pair, there is a respective number of data records that contain this x-y value pair. For example, for the value pair that includes the Drug attribute having the “Metoclopramide” value and the Reaction attribute having the “Nervous” value, there are 5,462 data records (representing respective events) that contain this particular pair of the Drug and Reaction attribute values (as depicted in the dialog box 110 in FIG. 1). The number of data records that contain a respective value pair of first and second attribute values (x-y value pair) refers to a frequency of occurrence of this value pair. Different x-y value pairs can be associated with different frequencies of occurrence.
The relevance determination process determines (at 302) frequencies of occurrence of respective x-y value pairs (respective pairs of categorical values of the first attribute and second attribute). Let df(x,y) represent the frequency of a given pair of an x attribute value and a y attribute value. For different categorical values of y (e.g. y1,y2, . . . , yM, where M is greater than one and represents the number of all possible y attribute values), there are a corresponding number of frequencies of occurrence of the following value pairs: (x,y1),(x,y2), . . . , (x,yM). The respective frequencies of occurrence for the listed pairs are as follows: df(x,y1),df(x,y2), . . . , df(x,yM).
The relevance determination process next determines (at 304) the number of events that correspond to each respective categorical value of the first attribute (e.g. x attribute). If there are n categorical values of the x attribute, where n is greater than one, then numbers of events of the respective categorical values of the x attribute are represented as: n(x1),n(x2), . . . , n(xn). The relevance determination process then computes (at 306) relevance values, represented as:




  
    
      r
      ⁡
      
        (
        
          
            x
            i
          
          ,
          
            y
            j
          
        
        )
      
    
    =
    
      
        df
        ⁡
        
          (
          
            
              x
              i
            
            ,
            
              y
              j
            
          
          )
        
      
      
        n
        ⁡
        
          (
          
            x
            i
          
          )
        
      
    
  
  ,
  
    

  
  ⁢
  
    
      where
      ⁢
      
        
      
      ⁢
      i
    
    =
    
      
        1
        ⁢
        
          
        
        ⁢
        to
        ⁢
        
          
        
        ⁢
        n
        ⁢
        
          
        
        ⁢
        and
        ⁢
        
          
        
        ⁢
        j
      
      =
      
        1
        ⁢
        
          
        
        ⁢
        to
        ⁢
        
          
        
        ⁢
        
          M
          .
        
      
    
  




Effectively, the relevance value r(x,y) for a given x-y value pair is equal to the frequency of occurrence of the x-y value pair divided by the overall number of events corresponding to the specific x value. Next, the relevance determination process compares (at 308) the relevance values computed above to a predefined threshold t, where t can be specified by a user, an application, or by some other mechanism.
The relevance determination process then selects (at 310) the second attribute values associated with respective relevance values that exceed (or have another predetermined relationship with) the threshold t. A predetermined relationship with the threshold can include any one of the following relationships: exceeds (is greater than), is less than, is equal to, or any other relationship. Thus, each of r(xi,y1),r(xi,y2), . . . , r(xi,yM) is compared to t, to identify which of r(xi,y1),r(xi,y2), . . . , r(xi,yM) exceeds the threshold t. Thus, if r(xi,y2) exceeds t, then the second attribute value y2 is selected at 310. Similarly, if r(xi,yM) exceeds the threshold t, then the second attribute value yM is selected at 310. On the other hand, if r(xi,y1) for all i does not exceed t, then the second attribute value y1 is not selected at 310. From the M candidate y attribute values, it is assumed that in categorical values of the y attribute are selected at 310.
The selected categorical values are placed into a data structure R(x,y), which includes each y value whose respective relevance value exceeds t. In other examples, instead of comparing relevance values to the threshold t, the frequencies of occurrence of each x-y value pair can instead be compared to a different threshold for determining which y attribute values are relevant and should be selected.
The relevance determination process is repeated for each categorical value of the x attribute. Each iteration of the relevance determination process produces a respective data structure R(x,y). After all iterations have been performed, all selected y values across all x values are stored into an output data structure R. Effectively, the multiple R(x,y) data structures produced by the multiple iterations of the relevance determination process are merged into the output data structure R, which includes the x values and the related y values that are to be visualized using visualization techniques according to some implementations.
FIG. 4A is a flow diagram of a process of generating a feature vector matrix that is useable for generating a visualization screen according to some implementations. Although reference is made to a feature vector matrix in this discussion, it is noted that other types of data structures can be employed in other implementations. As discussed below, the feature vector matrix can be used to group and order the first and second attribute values (e.g. x and y attribute values). The grouping and ordering of the first and second attribute values is used to define how the attribute values are to be arranged in a visualization screen, as depicted in examples shown in FIGS. 5 and 6 (discussed further below).
The process of FIG. 4A receives (at 402) a selection of the categorical values of an x attribute that are to be displayed in a visualization. It is assumed that there are n categorical values of the x attribute. The selection of the categorical values of the x attribute can be performed by a user, by an application, or by some other mechanism.
Next, using the relevance determination process discussed above, the more relevant categorical values of the y attributes are selected (at 404). It is assumed that there are m categorical values of the y attribute. Note that both m and n can be greater than or equal to 1.
Next, the process of FIG. 4A creates (at 406) a feature vector matrix that has n rows (e.g. corresponding to n drugs) and m columns (e.g. corresponding to m reactions). In some examples, this feature vector matrix is identified as M1. The n rows of the feature vector matrix contains information for respective different x attribute values, while the m columns of the feature vector matrix contains information for respective different y attribute values. An example feature vector matrix 400 is depicted in FIG. 4B, which shows n rows corresponding to x attribute values x1,x2, . . . , xn, and m columns corresponding to y attribute values y1,y2,y3, . . . , ym. Each entry of the feature vector matrix 400 corresponds to a pair of an x attribute value and a y attribute value (x-y value pair). An entry of the feature vector matrix 400 contains a value representing a relevance value, r(x,y) for the corresponding x-y value pair, as discussed above. For example, the entry at the intersection of x2 and y2 has a frequency of occurrence value 19, which indicates that there are 19 occurrences of the x2-y2 value pair.
Next, the n rows of the feature vector matrix M1 corresponding to x attribute values x1, . . . , xn are categorized (at 408) into multiple predefined classes (e.g. hypoglycemic class, NSAID class, statins class). The classes can be selected by a user or an application, or can be preconfigured. In some examples, the categorizing (408) can employ a single-linkage clustering technique. In other examples, other types of clustering techniques can be used. In the example where the x attribute is the Drug attribute, the multiple classes can be multiple classes of drugs.
In the feature vector matrix M1, each row can be considered a feature vector for the corresponding x attribute value (e.g. value of the Drug attribute). In such example, the rows of the feature vector matrix M1 can correspond to different drugs. A feature vector includes multiple features correspond to respective x-y value pairs. In FIG. 4B, each feature is the frequency of occurrence of the x attribute value and the corresponding y attribute value. Thus, a feature of a feature vector for a given drug is the frequency of occurrence of the combination of the given drug and the respective reaction. All features (reactions) to the given drug together form the feature vector for the given drug, and this feature vector is provided as a row in the feature vector matrix 400 of FIG. 4B.
The feature vectors can then be compared, such as by computing the Euclidean distance between the vectors. In other examples, other comparison techniques can be used. If the feature vectors are clustered using the single-linkage clustering technique, the two closest drugs are clustered together in each iteration, until all drugs in the feature vector matrix have been processed.
The rows of the feature vector matrix M1 corresponding to the x attribute values x1, . . . , xn are also ordered (at 410) by frequency of events. In some implementations, the ordering is performed as part of the single-linkage clustering technique discussed above, where the clustering also causes the rows to be ordered according to relative frequencies. The ordered feature vector matrix is identified as M2. For example, in the ordered feature vector matrix, within a subset of rows for a given class, the first row in the subset can correspond to the drug associated with the highest frequency of occurrence across all reactions (in other words, highest numbers of events). Successive rows in the subset can correspond to other drugs associated with successively lower numbers of events.
The columns of the ordered feature vector matrix M2 are then categorized (at 412) using the same technique as the row categorization (408). For example, the categorizing of the columns can also use the single-linkage clustering technique. The columns corresponding to the y attribute values y1, . . . , ym of the ordered feature vector matrix M2 are ordered (at 414), which can be performed as part of the categorizing (at 412). This further ordered feature vector matrix is identified as M3.
The final output is thus an ordered feature vector matrix (M3) that has both ordered rows and columns. The ordered feature vector matrix M3 can then be used to produce a visualization screen that contains cells plotted based on the arrangement of the ordered feature vector matrix M3.
FIG. 5 shows an example of a visualization screen 100-1, in which the x attribute values have been re-ordered by frequency as compared to the visualization screen 100 of FIG. 1. FIG. 5 does not depict the grouping of the Drug attribute values by class name. The ordering of x attribute values in the visualization screen 100-1 can be based on the ordering in the feature vector matrix performed at 410 in FIG. 4A, for example. The events represented by the visualization screen 100-1 are the same as those depicted by the visualization screen 100 of FIG. 1, except that in the visualization screen 100-1, the columns in the visualization screen 100 corresponding to the x attribute values have been re-ordered. For example, column 112 in the visualization screen 100 of FIG. 1 is associated with the highest frequency in terms of the number of events. Therefore, column 112 is re-ordered in the visualization screen 100-1 of FIG. 5 as the first column in the visualization screen 100-1. More generally, the drug with the highest frequency can be placed on the far left in the visualization screen 100-1. Drugs with lower frequencies are then progressively placed to the right in order of frequency. In other examples, the placement of columns corresponding to difference frequencies can be arranged in a different manner.
By ordering the rows and/or columns of the feature vector matrix as discussed above, an ordered presentation of the attribute categorical values in a visualization screen can be provided (such as illustrated in FIG. 5), to allow a user to more easily understand the visualized information and to detect patterns and anomalies. Also, with the ordering, such as shown in FIG. 5, an outlier drug can be more easily identified. An example of such outlier drug is a drug represented by the rightmost column in the visualization screen 100-1.
FIG. 6 shows a visualization screen 100-2 that shows events associated with three classes of the Drug attribute, including a hypoglycemic class, an NSAID class, and a statins class, which are divided by dashed vertical lines 602 and 604. The drugs represented by the visualization screen 100-2 are divided into these three classes. Within each class, the placement of columns can be ordered according to frequencies (in terms of number of events).
FIG. 7 is a block diagram of an example system 700 that has a multi-attribute relevance visualization module 702 according to some implementations, which can perform various tasks discussed above, including those tasks depicted in any of FIGS. 2-4A. The multi-attribute relevance visualization module 702 can also produce the visualization screens according to some implementations, such as those depicted in FIGS. 1, 5, and 6.
The multi-attribute relevance visualization module 702 can be implemented as machine-readable instructions executable on one or multiple processors 704. A processor can include a microprocessor, microcontroller, processor module or subsystem, programmable integrated circuit, programmable gate array, or another control or computing device. The processor(s) 704 can be connected to a network interface 706 and a storage medium (or storage media) 708.
The storage medium (storage media) 708 can store a dataset 710 (containing data records) that has been received by the system 700. The dataset 710 is processed by the multi-attribute relevance visualization module 702 to produce visualization screens according to some implementations.
The storage medium (or storage media) 708 can be implemented as one or more computer-readable or machine-readable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; optical media such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices. Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components. The storage medium or media can be located either in the machine running the machine-readable instructions, or located at a remote site from which machine-readable instructions can be downloaded over a network for execution.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some or all of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.

## Claims

1. A computer-implemented method of visualizing a relationship of attributes in data records, comprising:
for plural categorical values of a first attribute, selecting, by a system having a processor, more relevant categorical values of a second attribute from among candidate categorical values of the second attribute, wherein the selecting uses a relevance determination process that considers frequencies of occurrence of respective pairs of the categorical values of the first and second attributes; and
generating, by the system, a visualization that includes groups of cells corresponding to the respective pairs of categorical values of the first and second attributes, each of the cells corresponding to a pair of categorical values of the first and second attributes in a respective data record, wherein at least one of the groups includes cells assigned visual indicators based on values of a third attribute, wherein generating the visualization comprises:
placing cells sharing a given pair of a first categorical value of the first attribute and a second categorical value of the second attribute in a region corresponding to an intersection of the first categorical value and the second categorical value in the visualization, wherein the placing avoids overlaying of the placed cells.

2. The method of claim 1, further comprising:
computing relevance values for corresponding ones of the candidate categorical values of the second attribute, wherein the relevance values are based on the corresponding frequencies of occurrence of respective pairs of the categorical values of the first and second attributes,
wherein selecting the more relevant categorical values of the second attribute includes selecting, based on the relevance values, a subset of the candidate categorical values of the second attribute.

3. The method of claim 2, wherein computing a particular one of the relevance values comprises dividing a corresponding frequency of occurrence of a particular pair of the categorical values of the first and second attributes by a number of events corresponding to a particular categorical value of the first attribute.

4. The method of claim 2, further comprising:
comparing the relevance values to a threshold, wherein selecting the subset comprises selecting the subset of the candidate categorical values of the second attribute associated with respective relevance values that have a predefined relationship with the threshold.

5. The method of claim 1, further comprising:
generating a feature vector data structure that relates the categorical values of the first attribute to the categorical values of the second attribute, wherein an entry of the feature vector data structure corresponding to a pair of a first attribute value and a second attribute value has a value based on the corresponding frequency of occurrence of the pair of the first attribute value and the second attribute value.

6. The method of claim 1, wherein generating the visualization further comprises:
sorting the cells sharing the given pair of the first categorical value and the second categorical value according to respective values of the third attribute, wherein the cells in the region are placed based on the sorting.

7. The method of claim 6, wherein placing the cells in the region based on the sorting causes sub-groups of the cells to be formed, wherein each of the sub-groups correspond to cells sharing a common value of the third attribute.

8. The method of claim 7, wherein the visual indicators assigned to the cells in the region include different colors, and wherein the cells in each sub-group share a common assigned color.

9. A computer-implemented method of visualizing a relationship of attributes in data records, comprising:
for plural categorical values of a first attribute, selecting, by a system having a processor, more relevant categorical values of a second attribute from among candidate categorical values of the second attribute, wherein the selecting uses a relevance determination process that considers frequencies of occurrence of respective pairs of the categorical values of the first and second attributes;
generating, by the system, a visualization that includes groups of cells corresponding to the respective pairs of categorical values of the first and second attributes, each of the cells corresponding to a pair of categorical values of the first and second attributes in a respective data record, wherein at least one of the groups includes cells assigned visual indicators based on values of a third attribute;
generating a feature vector data structure that relates the categorical values of the first attribute to the categorical values of the second attribute, wherein an entry of the feature vector data structure corresponding to a pair of a first attribute value and a second attribute value has a value based on the corresponding frequency of occurrence of the pair of the first attribute value and the second attribute value;
categorizing rows or columns in the feature vector data structure into a plurality of classes; and
ordering the rows or columns in the feature vector data structure according to numbers of events associated with the corresponding first or second attribute values.

10. An article comprising at least one non-transitory machine-readable storage medium storing instructions that upon execution cause a system to:
receive categorical values of a first attribute to be visualized;
select categorical values of a second attribute that are more relevant to the categorical values of the first attribute, wherein the selecting selects from among candidate categorical values of the second attribute and uses a relevance determination process that compares relevance values based on frequencies of occurrence of respective pairs of the categorical values of the first and second attributes to a threshold; and
generate a visualization screen that includes groups of cells corresponding to the respective pairs of categorical values of the first and second attributes, wherein at least one of the groups includes cells assigned visual indicators based on values of a third attribute, wherein generating the visualization screen comprises placing cells sharing a given pair of a first categorical value of the first attribute and a second categorical value of the second attribute in a region corresponding to an intersection of the first categorical value and the second categorical value in the visualization screen, wherein the placing avoids overlaying of the placed cells.

11. The article of claim 10, wherein the visualization screen includes regions for respective groups of the groups of cells.

12. The article of claim 11, wherein a size of each region is indicative of a corresponding frequency of occurrence of the respective pair of categorical values of the first and second attributes.

13. The article of claim 10, wherein the relevance determination process further comprises:
computing the relevance values for the corresponding categorical values of the second attribute based on the respective frequencies of occurrence.

14. The article of claim 13, wherein computing a particular one of the relevance values comprises dividing a corresponding frequency of occurrence of a particular pair of the categorical values of the first and second attributes by a number of events corresponding to a particular categorical value of the first attribute.

15. The article of claim 10, wherein the visual indicators include different colors mapped to different values of the third attribute.

16. The article of claim 10, wherein the instructions upon execution cause the system to further:
receive interactive user input in the visualization screen; and
in response to the interactive user input, display a dialog box containing further information associated with a data record represented by a cell.

17. The method of claim 10, wherein the instructions upon execution cause the system to further:
generate a feature vector data structure that relates the categorical values of the first attribute to the categorical values of the second attribute, wherein an entry of the feature vector data structure corresponding to a respective pair of a value of the first attribute and a value of the second attribute has a respective relevance value of the relevance values;
categorize rows or columns in the feature vector data structure into a plurality of classes; and
order the rows or columns in the feature vector data structure according to numbers of events associated with the corresponding values of the first or second attribute.

18. A system comprising:
at least one processor to:
receive data records each containing plural attributes including first, second, and third attributes;
for plural categorical values of the first attribute, select more relevant categorical values of the second attribute from among candidate categorical values of the second attribute, wherein the selecting uses a relevance determination process that considers frequencies of occurrence of respective pairs of the categorical values of the first and second attributes; and
generate a visualization screen that includes groups of cells corresponding to the respective pairs of categorical values of the first and second attributes, each of the cells corresponding to a pair of categorical values of the first and second attributes in a respective data record, wherein at least one of the groups includes cells assigned visual indicators based on values of the third attribute, wherein the generating of the visualization screen comprises placing cells sharing a given pair of a first categorical value of the first attribute and a second categorical value of the second attribute in a region corresponding to an intersection of the first categorical value and the second categorical value in the visualization screen, wherein the placing avoids overlaying of the placed cells.

19. The system of claim 18, wherein the at least one processor is to further categorize and sort the first attribute values and second attribute values.

20. The system of claim 18, wherein the at least one processor is to:
generate a feature vector data structure that relates the categorical values of the first attribute to the categorical values of the second attribute, wherein an entry of the feature vector data structure corresponding to a respective pair of a value of the first attribute and a value of the second attribute has a value based on the corresponding frequency of occurrence of the respective pair;
categorize rows or columns in the feature vector data structure into a plurality of classes; and
order the rows or columns in the feature vector data structure according to numbers of events associated with the corresponding values of the first or second attribute.