<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lukáš Sýkora</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tomáš Kliegr</string-name>
          <email>tomas.kliegr@vse.cz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kateřina Hrudková</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rules Mining</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Action Rules, Explainable Machine Learning, High-Utility Mining</institution>
          ,
          <addr-line>Rule Learning, High-Utility Action</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Information and Knowledge Engineering, Faculty of Informatics and Statistics, Prague University of</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>High-utility action rule mining is a data mining task that aims to generate rules that provide the user with information on which actions might be the most profitable. The actions correspond to proposed changes in attribute values that may move some instances originally predicted to belong to the undesirable class to the desirable class. Through a list of conditions on attribute values, an action rule delimits a set of instances to which the proposed action applies to. If this change is implemented, the action rule implies that the classification of a part of these instances will change. The profit of an action rule is calculated based on a user-set utility table specifying the costs of actions and the benefit of moving an instance to the desirable class. In this paper, we report on a new extension of the ActionRules package written in Python that implements high-utility action rule mining.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The structure of the work is the following. Section 2 provides an introduction to action
rule mining. Section 3 provides a brief account of related work on high-utility action rule
mining. Section 4 describes the proposed approach to computing utility of action rules. Section
5 provides a demonstration on a specific example. Section 6 describes the implementation.
Conclusions summarise the contributions, point at the publicly available implementation and
outline future work.
2. Brief Introduction to Action Rule Mining
Algorithmically, there are two principal approaches to action rules mining [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]: a rule-based
approach and an object-based approach.
      </p>
      <p>
        The rule-based approach (also referred to as the loosely coupled framework [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]) is divided
into two independent phases. In the first phase, class association rules are mined by any
suitable association rule mining algorithm (for example, Apriori [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] modified for Classification
Association Rules [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]). The second phase generates action rules from candidate pairs of class
association rules meeting user-defined quality settings.
      </p>
      <p>
        The object-based approach (also referred to as the tightly coupled framework [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]) generates
action rules without the pre-mining of class association rules. The algorithms include MARFS1
(Apriori-like algorithm), LERS (Learning from Examples based on Rough Sets) or ERID
(Algorithm for Extracting Rules from Incomplete Decision System) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>In our work, we adopt the rule-based approach for which the two phases are described in the
following.
2.1. Phase 1: Mining of Class Association Rules
In the following, we will informally define common concepts used in association rule mining.
Class association rules are mined from a transaction database  containing  transactions. Each
transaction  contains a set of items. In the input for action rule mining is typically a data table,
which needs to be transformed into a transaction-format for the purpose of association rule
mining. This transformation needs to preserve the connection between the original attribute
and the generated items. We will therefore say that an item is derived from an attribute if it
was generated from it.</p>
      <p>Example illustrating transactions and items
The demonstration dataset in Table 1 (Section 6) contains rows corresponding to employees,
which are described by an id and attributes (columns) ′  ′, ′  ′ and ′   ′. For
example, the employee in the first row can be represented as a transaction  1 = {  ∶
,   ∶  ,    ∶  } . The first item in the transaction is derived from
attribute ′  ′, the second item from ′  ′ and third item from ′   ′.</p>
      <sec id="sec-1-1">
        <title>A formal representation of the type of the classification rule considered in our work is:</title>
        <p>∶  ⇒  ,
(1)
where the antecedent  is a set containing at least one item and the consequent  contains one
item. A set of items is also referred to as an itemset.</p>
        <p>As an input to the mining algorithm, the user needs to define the set of attributes  in the
input data table that can serve as predictors. Only items in  derived from these attributes can
be used for the antecedent  . The user also designates the target attribute  . Only items in 
derived from  can be used for the consequent  . Note that for utility action rule mining as
defined in our work,  is required to be a binary attribute.</p>
      </sec>
      <sec id="sec-1-2">
        <title>Additionally, the user needs to define thresholds for support and confidence metrics. Only rules meeting these minimum values are returned.</title>
        <p>The absolute support of a rule corresponds to the number of transactions in  that contains
all items from the antecedent and the consequent of the given rule:</p>
      </sec>
      <sec id="sec-1-3">
        <title>The relative support normalizes this number by the total number of transactions:</title>
        <p>( ⇒  ) = | ∈  ∶  ⊂  ∧  ⊂ |.
( ⇒  ) =
| ∈  ∶  ⊂  ∧  ⊂ |

.</p>
        <p>The confidence of a rule corresponds to the ratio between the number of transactions that
contain all items from both the antecedent and the consequent to the number of transactions
that contain all items from the antecedent:
 ( ⇒  ) =
  ( ⇒  )
| ∈  ∶  ⊂ |
2.2. Phase 2: Generation of Action Rules
In the second step, action rules are formed from pairs of class association rules. For this, the
user needs to additionally specify the set of flexible attributes  ⊂ 
, the set of stable attributes
 ⊂  . The user also needs to designate which value   ∈  of the binary target attribute Y is
desirable. The other value is considered as undesirable.</p>
        <p>This setting is used to preprocess candidate class association rules mined in phase 1. Consider
a classification rule   ∶</p>
        <p>⟹   with  = |  | items in the antecedent. The set   is partitioned
into a subset of items derived from flexible attributes in  , which we denote as { 
and a set of items defined over stable attributes in  which we denote as { 
(+1) , … ,  
() }.</p>
        <p>A pair of class association rules  1 ∶  1 →  1 and  2 ∶  2 →  2 need to fulfil several properties
(1), … ,  
() },
to form an action rule:
1. The rules need to have diferent consequents, where  1 ≠  2 ∧  2 =   .</p>
      </sec>
      <sec id="sec-1-4">
        <title>2. The sets of stable and flexible attributes from which items in both rules are derived must</title>
        <p>be the same.1</p>
        <p>
          Note that some eligible combinations can be skipped for optimization reasons, but still a
complete set of action rules is returned (cf. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] for details).
        </p>
      </sec>
      <sec id="sec-1-5">
        <title>1This condition can be relaxed in several ways, cf. the ActionRulesDiscovery package documentation for details.</title>
        <p>(2)
(3)
(4)
An action rule  1→2 formed from  1 and  2 can be represented as:
 1→2 ∶ [ 1(1) →  2(1) ∧ … ∧  1()
()
→  2() ] ∧ [ 1(+1) ∧ … ∧  1 ] ⇒ [ 1 →  2],
(5)
where  is the number of recommended actions. An action  1() →  2() denotes that the rule
recommends to replace the item  1() in  1 with  2() in  2. In other words, actions correspond to
changes in values of flexible attribute.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>3. Related work</title>
      <p>
        Inspiration for high-utility action rule mining can be drawn from research on high-utility
itemset (pattern) mining [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], which is a generalization of frequent itemset mining allowing
items in the database to be annotated with numerical values denoting their utility. The goal
of high-utility mining is to discover all high-utility itemset [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. An itemset  is a high-utility
itemset if its utility ( ) is no less than the minimum utility threshold  specified by the
user (( ) ≥  ) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Using costs in action rule mining appeared in parallel with the work of Liu et al, 2005 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] on
high utility itemset mining. The cost of an action was introduced by Tzacheva and Ras, 2005
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], who propose a cost formula to calculate the feasibility of actions. However, this research
does not yet work with the notion of utility. A formula for computing utility of action rules is
proposed in Tzacheva et al., 2016 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. This proposal does not work with an external utility
table as the value of the utility is computed from the training data.
      </p>
      <p>
        Su et al., 2012 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is the closest research to ours as their approach to computing utility of
action rules is based on an externally set utility table defined for each flexible attribute and
for the target attribute. For example, for a binary attribute  , this table separately defines the
change in utility when  is changed from 0 to 1 and from 1 to 0. The utility can be either positive
or negative, where a positive utility (benefit) is used for change from undesired to desired value
of the target attribute and a negative utility (cost) may be used to express the cost incurred from
an action on a flexible attribute.
      </p>
      <p>
        With our approach, we are extending the pioneering work of Su et al., 2012 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] in several
ways. The formula used in Su et al. for computing the utility of an action rule is optimistic.
Assuming binary target variable, their approach does not consider that the original rule ( 1 in
our notation) assigns a probability denoted by 1 −  ( 1) to the desired class even without
performing the action proposed by the rule. We also simplify the utility table by associating
the utility with values (items) rather than with a transition from one item to another. Also, the
implementation for [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is not publicly available.
      </p>
    </sec>
    <sec id="sec-3">
      <title>4. Proposed Action Rule Utility</title>
      <p>For mining high utility action rules according to the proposed approach, the user needs to
provide the item utility function  assigning items derived from the set of flexible attributes 
and the target attribute  with utility values. High utility action rule mining takes on the input
the set of discovered action rules (cf. Phase 2 in Section 2), computes their utility and outputs
only those with utility above the user-set threshold.</p>
      <p>To compute the utility of an action rule ( 1→2) we subtract the total item utility of all items
in  1 from the total item utility in  2 taking into account the confidence of both rules:
( 1→2) = ( 2)−( 1) = (((
2)−( 1))∗( (
2)−(1− (
1)))+∑((
2() )−(</p>
      <p>1() )),

=1
(6)
1() )
1)),

∑((
=1
actions.
and (
where (
2) is the utility of the desired class, (</p>
      <p>1) the utility of the undesired class, (
() ) are the utilities of items derived from flexible attributes before and after the
recom2
mended action. The expression (
2) − (</p>
      <p>1) computes the diference in the utility between
the desired class and the undesired class. This value is multiplied by  (
2) − (1 −  (
which is the change in confidence of the desired class according to  2 compared to its confidence
according to  1. Note that 1 −  (</p>
      <p>1) corresponds to the confidence of the desired class
according to  1 because we restricted the target attribute to be binary. The final part of the formula
2() ) − (</p>
      <p>1() )) expresses the total change in utility resulting from the recommended
5. Demonstration: Employee Attrition
To illustrate the application of high-utility action rules mining, consider an example employee
database depicted in Table 1. The aim is to find actions that increase the probability that
employees do not leave the company.
The user specifies the set of predictors  = { ′ 
′,′  
′}, the target attribute
 = ′</p>
      <p>′, the minimum support threshold to 25% and the minimum confidence to 60%.
These settings are suficient for mining of class association rules. For action rule mining, the
user specifies the set of stable attributes  = { ′ 
′} and the the set of flexible attributes
 = { ′</p>
      <p>′}. The intuition is that the company probably cannot move employees between
 1 = [(  ∶ &amp; ∧   ∶  ) ⇒    ∶   ],
 2 = [(  ∶ &amp; ∧   ∶  ℎ) ⇒    ∶  ],</p>
      <p>Item
Salary: Low
Salary: Medium
Salary: High
Attrition: False
Attrition: True
Sales and R&amp;D departments, while it can change their salary. Table 2 shows the user-specified
utilities for the individual items derived from the flexible attribute and the target attribute. The
user also sets the minimum utility of the discovered action rules to  _   = −300 .</p>
      <sec id="sec-3-1">
        <title>With this setting two class association rules are discovered from the data in Table 1:</title>
        <p>ℎ   25%    66.6%.
 ℎ   25%    66.6%.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Based on these two classification rules, the following action rule can be generated:</title>
        <p>= [(  ∶ &amp;) ∧ (  ∶   →  ℎ)] ⇒ [  . ∶  →  ],</p>
      </sec>
      <sec id="sec-3-3">
        <title>The discovered action rule does not contain information on whether this action is profitable</title>
        <p>on its own. Intuition may suggest that applying the rule pays of. The unit cost of the salary
increase is 500 units (utility -500), while the unit benefit (revenue) is 700 units (utility +700).
However, the entire benefit cannot be included as a result of the application of the action rule.
The reason is that the confidence of  1 indicates that some employees would not leave even
with the lower salary, and the confidence of  2 indicates that some would not stay even after a
salary increase. The latter group needs to be subtracted from the increase in utility.</p>
      </sec>
      <sec id="sec-3-4">
        <title>Since the target is binary, the utility of the action rule can be calculated using Eq. 6:</title>
        <p>( 1→2) = ((700 − 0) ∗ (0.666 − (1 − 0.666)) + (−1000 − (−500)) ≊
−266.6 (10)</p>
      </sec>
      <sec id="sec-3-5">
        <title>This result suggests that the rule is not profitable. In spite of this, it is returned because</title>
        <p>( 1→2) &gt;  _   .
(7)
(8)
(9)
6. High-Utility Action Rule Mining Implementation</p>
        <p>The ActionRules package for action rules mining uses the PyFIM2 library as a default option
for association rule mining. This library returns an exhaustive list of class association rules
used as input for action rule generation.</p>
        <p>
          The ActionRules package uses similar general machine learning interfaces as Scikit-Learn
[
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], a popular data mining library.
        </p>
        <sec id="sec-3-5-1">
          <title>6.1. Instantiate Model Object</title>
        </sec>
      </sec>
      <sec id="sec-3-6">
        <title>In Code listing 1, the packages are imported , and the model is instantiated.</title>
        <p>Code 1. Instantiate model object
1 import pandas as pd
2 from actionrules.actionRulesDiscovery import ActionRulesDiscovery
3
4 actionRDiscovery = ActionRulesDiscovery()
6.2. Fit Model to Training Data
The model is fit to the training data. In our example, we will use the same data as used for
illustration in Section 5. All features are nominal as required by the ActionRules package. The
training data are provided in a comma separated values (csv) file shown in Listing 1.</p>
      </sec>
      <sec id="sec-3-7">
        <title>Listing 1: attrition.csv</title>
        <p>TID,Department,Salary,Attrition
1,Sales,Medium,False
2,R&amp;D,Medium,False
3,R&amp;D,Medium,True
4,R&amp;D,Medium,True
5,Sales,Low,False
6,R&amp;D,High,False
7,R&amp;D,High,False
8,R&amp;D,High,True</p>
      </sec>
      <sec id="sec-3-8">
        <title>The utility values are loaded from a two-dimensional table exemplified in Listing 2. The first</title>
        <p>
          column is the index column, which must be in the form of ’attribute_attributeValue’ (for example,
’Salary_low’). The second column contains the utility value as a float. The ’attributeValue’ part
of the index must always be written in the lower case since the package code during the process
of discovering action rules converts all these values to lower case. Following the approach
adopted in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], costs have a negative sign.
        </p>
      </sec>
      <sec id="sec-3-9">
        <title>Listing 2: utility.csv</title>
        <p>Item,Utility
Salary_low,-300
Salary_medium,-500
Salary_high,-1000
Attrition_false,700
Attrition_true,0</p>
      </sec>
      <sec id="sec-3-10">
        <title>In Code listing 2, there is one stable attribute ’Department’, there is one flexible attribute</title>
        <p>’Salary’, and the target attribute is set to ’Attrition’. The minimum confidence for class association
rule mining is set to 60% and the minimum support to 25%. These thresholds are used only for
generating classification rules (phase 1). For phase 2, the listing defines the value of minimum
utility (‘min_profit=-300’). The desired class for ’Attrition’ is ’False’.</p>
        <p>
          Code 2. Fit model to training data
5 actionRDiscovery.read_csv(”data/attrition.csv”)
6 utility = pd.read_csv(”data/utility.csv”, index_col=”Item”)
7 utility. columns = [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
8 actionRDiscovery.fit(stable_attributes = [”Department”],
9 flexible_attributes = [”Salary”],
10 consequent = ”Attrition”,
11 conf=60,
12 supp=25,
13 desired_classes = [”False”],
14 utility_source=utility,
15 min_profit=-300)
        </p>
        <sec id="sec-3-10-1">
          <title>6.3. Show Action Rules</title>
          <p>Code listing 3 shows the last step of the action rule mining workflow. It returns all mined action
rules with the utility.</p>
          <p>Code 3. Show Action Rules
16 actionRDiscovery.get_pretty_action_rules()</p>
        </sec>
      </sec>
      <sec id="sec-3-11">
        <title>The list of generated action rules is in Listing 3. In this case, this is just one rule.</title>
      </sec>
      <sec id="sec-3-12">
        <title>Listing 3: Python Output</title>
        <p>["If attribute 'Department' is 'R&amp;D', attribute 'Salary' value
'medium' is changed to 'high', then 'Attrition' value 'True'
is changed to 'False'. Profit
of the action is -266.66666666666674."]</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>7. Conclusion</title>
      <p>In this paper, we described a new extension of the Python ActionRules package for
highutility action rules mining. A new formula for high-utility action rules mining was
introduced. The ActionRules package along with the described extension can be be found at:
https://github.com/lukassykora/actionrules.</p>
      <p>
        High-utility action rules require additional user information in the form of a utility table,
which may not always be available or complete. Future work might explore approaches that
would ameliorate this requirement. One possibility is to draw inspiration from the Learning
Classifier Systems family of rule learning [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], where more complex internal utility definitions
were developed and used as fitness functions to evaluate candidate rules.
      </p>
      <sec id="sec-4-1">
        <title>Supported by Prague University of Economics and Business by grant IGA 40/2021.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Z. W.</given-names>
            <surname>Ras</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Wieczorkowska</surname>
          </string-name>
          ,
          <article-title>Action-rules: How to increase profit of a company</article-title>
          ,
          <source>in: European Conference on Principles of Data Mining and Knowledge Discovery</source>
          , Springer,
          <year>2000</year>
          , pp.
          <fpage>587</fpage>
          -
          <lpage>592</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>P.</given-names>
            <surname>Fournier-Viger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.-W.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nkambou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Vo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Tseng</surname>
          </string-name>
          ,
          <article-title>High-utility pattern mining</article-title>
          , Cham: Springer (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Sỳkora</surname>
          </string-name>
          , T. Kliegr,
          <article-title>Action rules: Counterfactual explanations in python</article-title>
          , in: RuleML Challenge,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Dardzinska</surname>
          </string-name>
          ,
          <article-title>Action rules mining</article-title>
          , volume
          <volume>468</volume>
          , Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Z. W.</given-names>
            <surname>Raś</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.-S.</given-names>
            <surname>Tsay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dardzińska</surname>
          </string-name>
          ,
          <article-title>Tree-based algorithms for action rules discovery</article-title>
          ,
          <source>in: Mining Complex Data</source>
          , Springer,
          <year>2009</year>
          , pp.
          <fpage>153</fpage>
          -
          <lpage>163</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Agrawal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Srikant</surname>
          </string-name>
          , et al.,
          <article-title>Fast algorithms for mining association rules</article-title>
          ,
          <source>in: Proc. 20th int. conf. very large data bases, VLDB</source>
          , volume
          <volume>1215</volume>
          ,
          <year>1994</year>
          , pp.
          <fpage>487</fpage>
          -
          <lpage>499</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Jovanoski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Lavrač</surname>
          </string-name>
          ,
          <article-title>Classification rule learning with apriori-c</article-title>
          ,
          <source>in: Portuguese Conference on Artificial Intelligence</source>
          , Springer,
          <year>2001</year>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>51</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          , W.-k. Liao,
          <string-name>
            <given-names>A.</given-names>
            <surname>Choudhary</surname>
          </string-name>
          ,
          <article-title>A fast high utility itemsets mining algorithm</article-title>
          ,
          <source>in: Proceedings of the 1st international workshop on utility-based data mining</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>90</fpage>
          -
          <lpage>99</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Tzacheva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. W.</given-names>
            <surname>Raś</surname>
          </string-name>
          , Action rules mining,
          <source>International Journal of Intelligent Systems</source>
          <volume>20</volume>
          (
          <year>2005</year>
          )
          <fpage>719</fpage>
          -
          <lpage>736</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Tzacheva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. C.</given-names>
            <surname>Sankar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ramachandran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Shankar</surname>
          </string-name>
          ,
          <article-title>Support confidence and utility of action rules triggered by meta-actions</article-title>
          ,
          <source>in: 2016 IEEE International Conference on Knowledge Engineering and Applications</source>
          (ICKEA), IEEE,
          <year>2016</year>
          , pp.
          <fpage>113</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <article-title>An expected utility-based approach for mining action rules</article-title>
          ,
          <source>in: Proceedings of the ACM SIGKDD Workshop on Intelligence and Security Informatics</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <article-title>An introduction to machine learning with scikit-learn, scikit-learn (</article-title>
          <year>2022</year>
          ). URL: https: //scikit-learn.org/stable/tutorial/basic/tutorial.html.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>K.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. K.</given-names>
            <surname>Shakya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Biswas</surname>
          </string-name>
          ,
          <article-title>Mining of high-utility itemsets with negative utility</article-title>
          ,
          <source>Expert Systems</source>
          <volume>35</volume>
          (
          <year>2018</year>
          )
          <article-title>e12296</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Urbanowicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. N.</given-names>
            <surname>Browne</surname>
          </string-name>
          , Introduction to learning
          <source>classifier systems</source>
          , Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>