Skip to content

Commit c186a8d

Browse files
committed
Add CLI docs
1 parent 1e99629 commit c186a8d

File tree

2 files changed

+79
-11
lines changed

2 files changed

+79
-11
lines changed

README.md

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,75 @@ Install NiaARM with pip3:
3636
pip3 install niaarm
3737
```
3838

39-
## Examples
39+
## Usage
4040

41-
For a list of examples see the [examples folder](examples/).
41+
###Basic example
42+
```python
43+
from niaarm import NiaARM, Dataset
44+
from niapy.algorithms.basic import DifferentialEvolution
45+
from niapy.task import Task, OptimizationType
46+
47+
48+
# load and preprocess the dataset from csv
49+
data = Dataset("datasets/Abalone.csv")
50+
51+
# Create a problem:::
52+
# dimension represents the dimension of the problem;
53+
# features represent the list of features, while transactions depicts the list of transactions
54+
# the following 4 elements represent weights (support, confidence, coverage, shrinkage)
55+
# None defines that criteria are omitted and are, therefore, excluded from the fitness function
56+
problem = NiaARM(data.dimension, data.features, data.transactions, alpha=1.0, beta=1.0)
57+
58+
# build niapy task
59+
task = Task(problem=problem, max_iters=30, optimization_type=OptimizationType.MAXIMIZATION)
60+
61+
# use Differential Evolution (DE) algorithm from the NiaPy library
62+
# see full list of available algorithms: https://github.com/NiaOrg/NiaPy/blob/master/Algorithms.md
63+
algo = DifferentialEvolution(population_size=50, differential_weight=0.5, crossover_probability=0.9)
64+
65+
# run algorithm
66+
best = algo.run(task=task)
67+
68+
# sort rules
69+
problem.sort_rules()
70+
71+
# export all rules to csv
72+
problem.export_rules('output.csv')
73+
```
74+
For a full list of examples see the [examples folder](examples/).
75+
76+
### Command line interface
77+
78+
```
79+
niaarm -h
80+
usage: niaarm [-h] -i INPUT_FILE [-o OUTPUT_FILE] -a ALGORITHM [-s SEED]
81+
[--max-evals MAX_EVALS] [--max-iters MAX_ITERS] [--alpha ALPHA]
82+
[--beta BETA] [--gamma GAMMA] [--delta DELTA] [--logging]
83+
[--show-stats]
84+
85+
Perform ARM, output mined rules as csv, get mined rules' statistics
86+
87+
options:
88+
-h, --help show this help message and exit
89+
-i INPUT_FILE, --input-file INPUT_FILE
90+
Input file containing a csv dataset
91+
-o OUTPUT_FILE, --output-file OUTPUT_FILE
92+
Output file for mined rules
93+
-a ALGORITHM, --algorithm ALGORITHM
94+
Algorithm to use (niapy class name, e. g.
95+
DifferentialEvolution)
96+
-s SEED, --seed SEED Seed for the algorithm's random number generator
97+
--max-evals MAX_EVALS
98+
Maximum number of fitness function evaluations
99+
--max-iters MAX_ITERS
100+
Maximum number of iterations
101+
--alpha ALPHA Alpha parameter. Default 0
102+
--beta BETA Beta parameter. Default 0
103+
--gamma GAMMA Gamma parameter. Default 0
104+
--delta DELTA Delta parameter. Default 0
105+
--logging Enable logging of fitness improvements
106+
--show-stats Display stats about mined rules
107+
```
42108

43109
## Reference Papers:
44110

niaarm/cli.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,19 @@
1313

1414

1515
def get_parser():
16-
parser = argparse.ArgumentParser(description='Perform ARM, output mined rules as csv, get mined rules\' statistics')
16+
parser = argparse.ArgumentParser(prog='niaarm',
17+
description='Perform ARM, output mined rules as csv, get mined rules\' statistics')
18+
parser.add_argument('-i', '--input-file', type=str, required=True, help='Input file containing a csv dataset')
19+
parser.add_argument('-o', '--output-file', type=str, help='Output file for mined rules')
1720
parser.add_argument('-a', '--algorithm', type=str, required=True,
18-
help='Algorithm to use (niapy class name, e. g. DifferentialEvolution)')
19-
parser.add_argument('-s', '--seed', type=int, help='Seed for thr algorithm\'s random number generator')
21+
help='Algorithm to use (niapy class name, e.g. DifferentialEvolution)')
22+
parser.add_argument('-s', '--seed', type=int, help='Seed for the algorithm\'s random number generator')
2023
parser.add_argument('--max-evals', type=int, default=np.inf, help='Maximum number of fitness function evaluations')
2124
parser.add_argument('--max-iters', type=int, default=np.inf, help='Maximum number of iterations')
22-
parser.add_argument('-i', '--input-file', type=str, required=True, help='Input file containing a csv dataset')
23-
parser.add_argument('-o', '--output-file', type=str, help='Output file for mined rules')
24-
parser.add_argument('--alpha', type=float, default=0.0, help='Alpha parameter')
25-
parser.add_argument('--beta', type=float, default=0.0, help='Beta parameter')
26-
parser.add_argument('--gamma', type=float, default=0.0, help='Gamma parameter')
27-
parser.add_argument('--delta', type=float, default=0.0, help='Delta parameter')
25+
parser.add_argument('--alpha', type=float, default=0.0, help='Alpha parameter. Default 0')
26+
parser.add_argument('--beta', type=float, default=0.0, help='Beta parameter. Default 0')
27+
parser.add_argument('--gamma', type=float, default=0.0, help='Gamma parameter. Default 0')
28+
parser.add_argument('--delta', type=float, default=0.0, help='Delta parameter. Default 0')
2829
parser.add_argument('--logging', action='store_true', help='Enable logging of fitness improvements')
2930
parser.add_argument('--show-stats', action='store_true', help='Display stats about mined rules')
3031

@@ -117,6 +118,7 @@ def main():
117118
algorithm.run(task)
118119

119120
if args.output_file:
121+
problem.sort_rules()
120122
problem.export_rules(args.output_file)
121123

122124
if args.show_stats:

0 commit comments

Comments
 (0)