Monday, January 4, 2021

Performing Association Data mining on IT Service requests continued ...

Other forms of associations including sequential associations can also be performed but the association rules are a sort of recommendation and something that is lateral and helpful to the users in their single-minded case request. User generally don’t have access to past request and mitigations to see the help that others received for the cases that are like theirs. Cases opened with IT contain internal and confidential information and number hundreds if not thousands. A public facing summary of request descriptions and resolutions database or knowledge-based articles are helpful too, but they are usually time-consuming and secondary to the case deluge that IT teams are faced with. Building an association rule set and evaluating it with the incoming request on the other hand requires less effort and time. 

Sample query to see the association set for problem type: 

SELECT TOP 10 (Node_Support),Node_NameNode_Caption   

FROM Association 

WHERE Node_Type = 7 

To perform this query, we will need a one-hot encoding. We rearrange the data with each problem/product category one hot encoded and one transaction/service request per row. One hot encoding refers to data transformation technique where categorical values are converted into columns. If the categorical value is present, the column is given a value of 1. This is just like pivoting and the columns expand from the original set by a number equal to the number of categories. 

Support can be determined for any category based on 

SELECT COUNT(*) / (SELECT COUNT(*) FROM ONE_HOT_ENCODED_Transactions) as SUPPORT FROM ONE_HOT_ENCODED_Transactions where category_A = 1; 

Each of the metrics described above can be calculated with sample SQL queries as shown below 

SELECT COUNT(*) as Support_x  

FROM Transactions  

WHERE Product = ‘x’; 

 

SELECT Support_x _y/Support_x as Confidence_x 

FROM Transactions 

WHERE Product = ‘x’; 

 

SELECT Confidence_x / Support_y as Lift_y_x 

FROM Transactions 

WHERE Product = ‘x’; 

 

SELECT A.name, B.name into associations  

FROM Products as A  

CROSS JOIN Products as B 

WHERE A.name != B.name  

Evaluating the three metrics for each of the association results in an Association.content table where product pairs have support, confidence and lift. Then the associations can be filtered to have a lift > 1.0 

Sunday, January 3, 2021

Performing Association Data mining on IT Service requests


  

Introduction: Service requests are opened by customers who report a problem and request mitigation. The IT department is a magnet for virtually all computing, storage, and networking related tasks requested by its customers. It is usually far more than the IT team can resolve in an easy manner. In this regard, the IT teams look for automation that can provide self-service capabilities to users. Association data mining allows these users to see helpful messages such as “users who opened a ticket for this problem type also opened a ticket for this other problem type”. This article describes the implementation aspect of this data mining technique. 

Description: 

The centerpiece of this solution relies on the computation of two columns namely Support and Probability. Support defines the percentage of cases in which a rule must exist before it is considered valid. We define that a rule must be found in at least 1 percent of cases. 

Probability defines how likely an association must be before it is considered valid. We will consider any association with a probability of at least 10 percent. 

Bayesian conditional probability and confidence can also be used. Associations have association rules formed with a pair of antecedent and consequent item-sets, so named, because we want to find the value of taking one item with another. Let I be a set of items, T be a set of transactions. Then an association A is defined as a subset of I that occurs together in T. Support (S1) is a fraction of T containing S1. Let S1 and S2 be subsets of I, then association rule to associate S1 to S2 has a support(S1->S2) defined as Support(S1 union S2) and a confidence (S1->S2) = Support(S1 union S2)/ Support(S1).  A third metric Lift is determined as Confidence(S1->S2)/Support(S2) and is preferred because a popular S1 gives high confidence for any S2 and lift corrects that by having a value greater than 1.0 when S2 is also significant. 

Certain databases allow the creation of association models that can be persisted and evaluated against each incoming request. Usually, a training/testing data split of 70/30% is used in this regard. 

Without the predictions, association rules can be evaluated with a Cartesian product of all known problem types and evaluating their probability and support. The static rules can then be selected based on their support for the top ten and can even be included in the display to the customers.