Mercurial > repos > bgruening > sklearn_searchcv
annotate association_rules.py @ 23:bc3b489825b2 draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
author | bgruening |
---|---|
date | Mon, 02 Oct 2023 07:59:32 +0000 |
parents | 006db575e1f3 |
children |
rev | line source |
---|---|
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
1 import argparse |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
2 import json |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
3 import warnings |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
4 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
5 import pandas as pd |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
6 from mlxtend.frequent_patterns import association_rules, fpgrowth |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
7 from mlxtend.preprocessing import TransactionEncoder |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
8 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
9 |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
10 def main( |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
11 inputs, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
12 infile, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
13 outfile, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
14 min_support=0.5, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
15 min_confidence=0.5, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
16 min_lift=1.0, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
17 min_conviction=1.0, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
18 max_length=None, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
19 ): |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
20 """ |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
21 Parameter |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
22 --------- |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
23 input : str |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
24 File path to galaxy tool parameter |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
25 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
26 infile : str |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
27 File paths of input vector |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
28 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
29 outfile : str |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
30 File path to output matrix |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
31 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
32 min_support: float |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
33 Minimum support |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
34 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
35 min_confidence: float |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
36 Minimum confidence |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
37 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
38 min_lift: float |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
39 Minimum lift |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
40 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
41 min_conviction: float |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
42 Minimum conviction |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
43 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
44 max_length: int |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
45 Maximum length |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
46 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
47 """ |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
48 warnings.simplefilter("ignore") |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
49 |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
50 with open(inputs, "r") as param_handler: |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
51 params = json.load(param_handler) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
52 |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
53 input_header = params["header0"] |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
54 header = "infer" if input_header else None |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
55 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
56 with open(infile) as fp: |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
57 lines = fp.read().splitlines() |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
58 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
59 if header is not None: |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
60 lines = lines[1:] |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
61 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
62 dataset = [] |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
63 for line in lines: |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
64 line_items = line.split("\t") |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
65 dataset.append(line_items) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
66 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
67 # TransactionEncoder learns the unique labels in the dataset and transforms the |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
68 # input dataset (a Python list of lists) into a one-hot encoded NumPy boolean array |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
69 te = TransactionEncoder() |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
70 te_ary = te.fit_transform(dataset) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
71 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
72 # Turn the encoded NumPy array into a DataFrame |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
73 df = pd.DataFrame(te_ary, columns=te.columns_) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
74 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
75 # Extract frequent itemsets for association rule mining |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
76 # use_colnames: Use DataFrames' column names in the returned DataFrame instead of column indices |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
77 frequent_itemsets = fpgrowth( |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
78 df, min_support=min_support, use_colnames=True, max_len=max_length |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
79 ) |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
80 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
81 # Get association rules, with confidence larger than min_confidence |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
82 rules = association_rules( |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
83 frequent_itemsets, metric="confidence", min_threshold=min_confidence |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
84 ) |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
85 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
86 # Filter association rules, keeping rules with lift and conviction larger than min_liftand and min_conviction |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
87 rules = rules[(rules["lift"] >= min_lift) & (rules["conviction"] >= min_conviction)] |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
88 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
89 # Convert columns from frozenset to list (more readable) |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
90 rules["antecedents"] = rules["antecedents"].apply(list) |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
91 rules["consequents"] = rules["consequents"].apply(list) |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
92 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
93 # The next 3 steps are intended to fix the order of the association |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
94 # rules generated, so tests that rely on diff'ing a desired output |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
95 # with an expected output can pass |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
96 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
97 # 1) Sort entry in every row/column for columns 'antecedents' and 'consequents' |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
98 rules["antecedents"] = rules["antecedents"].apply(lambda row: sorted(row)) |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
99 rules["consequents"] = rules["consequents"].apply(lambda row: sorted(row)) |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
100 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
101 # 2) Create two temporary string columns to sort on |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
102 rules["ant_str"] = rules["antecedents"].apply(lambda row: " ".join(row)) |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
103 rules["con_str"] = rules["consequents"].apply(lambda row: " ".join(row)) |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
104 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
105 # 3) Sort results so they are re-producable |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
106 rules.sort_values(by=["ant_str", "con_str"], inplace=True) |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
107 del rules["ant_str"] |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
108 del rules["con_str"] |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
109 rules.reset_index(drop=True, inplace=True) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
110 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
111 # Write association rules and metrics to file |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
112 rules.to_csv(outfile, sep="\t", index=False) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
113 |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
114 |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
115 if __name__ == "__main__": |
19
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
116 aparser = argparse.ArgumentParser() |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
117 aparser.add_argument("-i", "--inputs", dest="inputs", required=True) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
118 aparser.add_argument("-y", "--infile", dest="infile", required=True) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
119 aparser.add_argument("-o", "--outfile", dest="outfile", required=True) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
120 aparser.add_argument("-s", "--support", dest="support", default=0.5) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
121 aparser.add_argument("-c", "--confidence", dest="confidence", default=0.5) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
122 aparser.add_argument("-l", "--lift", dest="lift", default=1.0) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
123 aparser.add_argument("-v", "--conviction", dest="conviction", default=1.0) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
124 aparser.add_argument("-t", "--length", dest="length", default=5) |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
125 args = aparser.parse_args() |
006db575e1f3
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit ea12f973df4b97a2691d9e4ce6bf6fae59d57717"
bgruening
parents:
diff
changeset
|
126 |
23
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
127 main( |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
128 args.inputs, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
129 args.infile, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
130 args.outfile, |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
131 min_support=float(args.support), |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
132 min_confidence=float(args.confidence), |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
133 min_lift=float(args.lift), |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
134 min_conviction=float(args.conviction), |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
135 max_length=int(args.length), |
bc3b489825b2
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 80417bf0158a9b596e485dd66408f738f405145a
bgruening
parents:
19
diff
changeset
|
136 ) |