Metadata-Version: 2.1
Name: action-rules
Version: 0.0.1
Summary: Action Rules Mining Tool.
Home-page: https://github.com/lukassykora/actionrules
Author: Lukas Sykora
Author-email: lukas.sykora@vse.cz
License: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: pandas (~=2.2.2)

# Action-Apriori (Apriori Modified for Action Rules Mining)

 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)


 ## Installation
The Action-Apriori script needs the following libraries:
- itertools (built-in module in python)
- copy (built-in module in python)
- collections (built-in module in python)
- pandas (1.3.4)

The tested Python version is: 3.9.7

The action_apriori function can be called:

```python
import action_rules as ar
import pandas as pd
# Data
transactions = {'Sex': ['M', 'F', 'M', 'M', 'F', 'M', 'F'], 
                'Age': ['Y', 'Y', 'O', 'Y', 'Y', 'O', 'Y'],
                'Class': [1, 1, 2, 2, 1, 1, 2],
                'Embarked': ['S', 'C', 'S', 'C', 'S', 'C', 'C'],
                'Survived': [1, 1, 0, 0, 1, 1, 0],
               }
data = pd.DataFrame.from_dict(transactions)
# Parameters
stable_attributes = ['Sex','Age']
flexible_attributes = ['Class','Embarked']
target = 'Survived'
wanted_change_in_target = [0, 1]
min_stable_attributes = 2
min_flexible_attributes = 1 #min 1
min_unwanted_support = 1
min_unwanted_confidence = 0.5 #min 0.5
min_wanted_support = 2
min_wanted_confidence = 0.5 #min 0.5
# Action Rules Mining
action_rules = ar.action_apriori(
    data, 
    stable_attributes, 
    flexible_attributes, 
    target, 
    wanted_change_in_target,
    min_stable_attributes , 
    min_flexible_attributes, 
    min_unwanted_support, 
    min_unwanted_confidence, 
    min_wanted_support, 
    min_wanted_confidence, 
    True) #verbose
# Print rules
for action_rule in action_rules:
    print(action_rule)
# Print rules with action rules notation
for action_rule in action_rules:
    print(ar.get_ar_notation(action_rule, target))
# Print rules with export notation
print(ar.get_export_notation(action_rules, target))
```

The output: ation rule with notation:

```python
[(Sex: F) ∧ (Age: Y) ∧ (Class: 2 → 1)] ⇒ [Survived: 0 → 1], support of undesired part: 1, confidence of undesired part: 1.0, support of desired part: 2, confidence of desired part: 1.0
```




