├── .gitignore
├── apriori.PNG
├── dataset
├── tesco.csv
├── tesco2.csv
├── data.csv
├── data2.csv
└── data3.csv
├── apriori_python
├── __init__.py
├── utils.py
└── apriori.py
├── setup.py
├── LICENSE.txt
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | build
3 | apriori_py.egg-info
--------------------------------------------------------------------------------
/apriori.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chonyy/apriori_python/HEAD/apriori.PNG
--------------------------------------------------------------------------------
/dataset/tesco.csv:
--------------------------------------------------------------------------------
1 | a,c,d,f,g,i,m,p
2 | a,b,c,f,i,m,o
3 | b,f,h,j,o
4 | b,c,k,s,p
5 | a,c,e,f,l,m,n,p
--------------------------------------------------------------------------------
/apriori_python/__init__.py:
--------------------------------------------------------------------------------
1 | from apriori_python.apriori import *
2 | from apriori_python.utils import *
--------------------------------------------------------------------------------
/dataset/tesco2.csv:
--------------------------------------------------------------------------------
1 | apple,beer,rice,chicken
2 | apple,beer,rice
3 | apple,beer
4 | apple,mango
5 | milk,beer,rice,chicken
6 | milk,beer,rice
7 | milk,beer
8 | milk,mango
--------------------------------------------------------------------------------
/dataset/data.csv:
--------------------------------------------------------------------------------
1 | 8585,948,1125,1289,1544,1651
2 | 656,783,1017,1273,1318,1429,1516
3 | 112,1034
4 | 647,704,929,1040,1094,1182,1194,1214,1250
5 | 11,89,870,1094,1605,1940
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | import setuptools
2 |
3 | with open("README.md", "r") as fh:
4 | long_description = fh.read()
5 |
6 | setuptools.setup(
7 | name="apriori_python",
8 | version="1.0.4",
9 | author="Chonyy",
10 | author_email="tcheon8788@gmail.com",
11 | description="A simple apriori algorithm python implementation",
12 | long_description=long_description,
13 | long_description_content_type="text/markdown",
14 | url="https://github.com/chonyy/apriori_python",
15 | packages=setuptools.find_packages(),
16 | classifiers=[
17 | "Programming Language :: Python :: 3",
18 | "License :: OSI Approved :: MIT License",
19 | "Operating System :: OS Independent",
20 | ],
21 | python_requires='>=3.6',
22 | )
23 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 | Copyright (c) 2020 Chonyy
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 | The above copyright notice and this permission notice shall be included in all
10 | copies or substantial portions of the Software.
11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | ## Getting Started
15 |
16 | ### Install the Pypi package using pip
17 |
18 | ```
19 | pip install apriori_python
20 | ```
21 |
22 | Then use it like
23 |
24 | ```python
25 | from apriori_python import apriori
26 | itemSetList = [['eggs', 'bacon', 'soup'],
27 | ['eggs', 'bacon', 'apple'],
28 | ['soup', 'bacon', 'banana']]
29 | freqItemSet, rules = apriori(itemSetList, minSup=0.5, minConf=0.5)
30 | print(freqItemSet)
31 | print(rules)
32 | # [[{'beer'}, {'rice'}, 0.6666666666666666], [{'rice'}, {'beer'}, 1.0]]
33 | # rules[0] --> rules[1], confidence = rules[2]
34 | ```
35 |
36 | ### Clone the repo
37 |
38 | Get a copy of this repo using git clone
39 | ```
40 | git clone https://github.com/chonyy/apriori_python.git
41 | ```
42 |
43 | Run the program with dataset provided and **default** values for *minSupport* = 0.5 and *minConfidence* = 0.5
44 |
45 | ```
46 | python apriori.py -f dataset.csv
47 | ```
48 |
49 | Run program with dataset and min support and min confidence
50 |
51 | ```
52 | python apriori.py -f ../dataset/tesco2.csv -s 0.5 -c 0.5
53 | ```
54 |
55 | ## Concepts of Apriori
56 |
57 | * **Support:** Fraction of transactions that contain an itemset
58 | * **Confidence:** Measures how often items in Y appear in transactions that contain X
59 | * **Frequent itemset:** An itemset whose support is greater than or equal to a minSup threshold
60 |
--------------------------------------------------------------------------------
/apriori_python/utils.py:
--------------------------------------------------------------------------------
1 | from csv import reader
2 | from collections import defaultdict
3 | from itertools import chain, combinations
4 |
5 | def dataToCSV(fname):
6 | first = True
7 | currentID = 1
8 | with open(fname, 'r') as dataFile, open(fname + '.csv', 'w') as outputCSV:
9 | for line in dataFile:
10 | nums = line.split()
11 | itemSetID = nums[1]
12 | item = nums[2]
13 | if(int(itemSetID) == currentID):
14 | if(first):
15 | outputCSV.write(item)
16 | else:
17 | outputCSV.write(',' + item)
18 | first = False
19 | else:
20 | outputCSV.write('\n' + item)
21 | currentID += 1
22 |
23 |
24 | def powerset(s):
25 | return chain.from_iterable(combinations(s, r) for r in range(1, len(s)))
26 |
27 |
28 | def getFromFile(fname):
29 | itemSets = []
30 | itemSet = set()
31 |
32 | with open(fname, 'r') as file:
33 | csv_reader = reader(file)
34 | for line in csv_reader:
35 | line = list(filter(None, line))
36 | record = set(line)
37 | for item in record:
38 | itemSet.add(frozenset([item]))
39 | itemSets.append(record)
40 | return itemSet, itemSets
41 |
42 |
43 | def getAboveMinSup(itemSet, itemSetList, minSup, globalItemSetWithSup):
44 | freqItemSet = set()
45 | localItemSetWithSup = defaultdict(int)
46 |
47 | for item in itemSet:
48 | for itemSet in itemSetList:
49 | if item.issubset(itemSet):
50 | globalItemSetWithSup[item] += 1
51 | localItemSetWithSup[item] += 1
52 |
53 | for item, supCount in localItemSetWithSup.items():
54 | support = float(supCount / len(itemSetList))
55 | if(support >= minSup):
56 | freqItemSet.add(item)
57 |
58 | return freqItemSet
59 |
60 |
61 | def getUnion(itemSet, length):
62 | return set([i.union(j) for i in itemSet for j in itemSet if len(i.union(j)) == length])
63 |
64 |
65 | def pruning(candidateSet, prevFreqSet, length):
66 | tempCandidateSet = candidateSet.copy()
67 | for item in candidateSet:
68 | subsets = combinations(item, length)
69 | for subset in subsets:
70 | # if the subset is not in previous K-frequent get, then remove the set
71 | if(frozenset(subset) not in prevFreqSet):
72 | tempCandidateSet.remove(item)
73 | break
74 | return tempCandidateSet
75 |
76 |
77 | def associationRule(freqItemSet, itemSetWithSup, minConf):
78 | rules = []
79 | for k, itemSet in freqItemSet.items():
80 | for item in itemSet:
81 | subsets = powerset(item)
82 | for s in subsets:
83 | confidence = float(
84 | itemSetWithSup[item] / itemSetWithSup[frozenset(s)])
85 | if(confidence > minConf):
86 | rules.append([set(s), set(item.difference(s)), confidence])
87 | return rules
88 |
89 |
90 | def getItemSetFromList(itemSetList):
91 | tempItemSet = set()
92 |
93 | for itemSet in itemSetList:
94 | for item in itemSet:
95 | tempItemSet.add(frozenset([item]))
96 |
97 | return tempItemSet
98 |
--------------------------------------------------------------------------------
/apriori_python/apriori.py:
--------------------------------------------------------------------------------
1 | from csv import reader
2 | from collections import defaultdict
3 | from itertools import chain, combinations
4 | from optparse import OptionParser
5 | from apriori_python.utils import *
6 |
7 | def apriori(itemSetList, minSup, minConf):
8 | C1ItemSet = getItemSetFromList(itemSetList)
9 | # Final result global frequent itemset
10 | globalFreqItemSet = dict()
11 | # Storing global itemset with support count
12 | globalItemSetWithSup = defaultdict(int)
13 |
14 | L1ItemSet = getAboveMinSup(
15 | C1ItemSet, itemSetList, minSup, globalItemSetWithSup)
16 | currentLSet = L1ItemSet
17 | k = 2
18 |
19 | # Calculating frequent item set
20 | while(currentLSet):
21 | # Storing frequent itemset
22 | globalFreqItemSet[k-1] = currentLSet
23 | # Self-joining Lk
24 | candidateSet = getUnion(currentLSet, k)
25 | # Perform subset testing and remove pruned supersets
26 | candidateSet = pruning(candidateSet, currentLSet, k-1)
27 | # Scanning itemSet for counting support
28 | currentLSet = getAboveMinSup(
29 | candidateSet, itemSetList, minSup, globalItemSetWithSup)
30 | k += 1
31 |
32 | rules = associationRule(globalFreqItemSet, globalItemSetWithSup, minConf)
33 | rules.sort(key=lambda x: x[2])
34 |
35 | return globalFreqItemSet, rules
36 |
37 | def aprioriFromFile(fname, minSup, minConf):
38 | C1ItemSet, itemSetList = getFromFile(fname)
39 |
40 | # Final result global frequent itemset
41 | globalFreqItemSet = dict()
42 | # Storing global itemset with support count
43 | globalItemSetWithSup = defaultdict(int)
44 |
45 | L1ItemSet = getAboveMinSup(
46 | C1ItemSet, itemSetList, minSup, globalItemSetWithSup)
47 | currentLSet = L1ItemSet
48 | k = 2
49 |
50 | # Calculating frequent item set
51 | while(currentLSet):
52 | # Storing frequent itemset
53 | globalFreqItemSet[k-1] = currentLSet
54 | # Self-joining Lk
55 | candidateSet = getUnion(currentLSet, k)
56 | # Perform subset testing and remove pruned supersets
57 | candidateSet = pruning(candidateSet, currentLSet, k-1)
58 | # Scanning itemSet for counting support
59 | currentLSet = getAboveMinSup(
60 | candidateSet, itemSetList, minSup, globalItemSetWithSup)
61 | k += 1
62 |
63 | rules = associationRule(globalFreqItemSet, globalItemSetWithSup, minConf)
64 | rules.sort(key=lambda x: x[2])
65 |
66 | return globalFreqItemSet, rules
67 |
68 | if __name__ == "__main__":
69 | optparser = OptionParser()
70 | optparser.add_option('-f', '--inputFile',
71 | dest='inputFile',
72 | help='CSV filename',
73 | default=None)
74 | optparser.add_option('-s', '--minSupport',
75 | dest='minSup',
76 | help='Min support (float)',
77 | default=0.5,
78 | type='float')
79 | optparser.add_option('-c', '--minConfidence',
80 | dest='minConf',
81 | help='Min confidence (float)',
82 | default=0.5,
83 | type='float')
84 |
85 | (options, args) = optparser.parse_args()
86 |
87 | freqItemSet, rules = aprioriFromFile(options.inputFile, options.minSup, options.minConf)
--------------------------------------------------------------------------------
/dataset/data2.csv:
--------------------------------------------------------------------------------
1 | 1040,2372,2872,3159,4750
2 | 1040,1280,2495,2872,3186,4750,4995
3 | 1040,2872,4750
4 | 1280,2872,3186,4995
5 | 1040,1280,2872,3186,4995
6 | 1280,3186,4995
7 | 1040,1280,2872,3186,4750,4995
8 | 1040,1280,2495,2872,3186,4750,4995
9 | 1040,1280,2495,2872,3186,4750,4995
10 | 1040,2872,3186,4750,4995
11 | 1040,2495,4750
12 | 1040,1280,2872,3186,4750,4995
13 | 1040,1280,2872,3186,4750,4995
14 | 1040,1280,2872,4750,4995
15 | 1040,2372,2495,3159,4750
16 | 1280,2872,3186,4995
17 | 1040,4750
18 | 1280,2872,3186,4995
19 | 1040,1280,2495,2872,4750
20 | 1040,1280,2372,2872,3186,4995
21 | 1280,2872,3186,4750,4995
22 | 1040,2872,4750
23 | 1040,2872,4750
24 | 1280,2872,3186,4750,4995
25 | 1040,2495,4750
26 | 1040,1280,2872,3186,4750,4995
27 | 2372,3159
28 | 1040,1280,2872,3186,4750,4995
29 | 1040,1280,2372,2495,2872,3159,3186,4750,4995
30 | 1040,2495,2872,4750
31 | 1280,2495,2872,3186,4995
32 | 1040,4750
33 | 1040,2872,3186,4750,4995
34 | 1040,1280,2872,4750,4995
35 | 1280,2872,3186,4750,4995
36 | 1040,1280,2495,2872,3186,4750,4995
37 | 1280,2872,3186,4995
38 | 1040,1280,2872,3186,4750,4995
39 | 1280,2872,3186,4995
40 | 1040,2495,2872,4750
41 | 1040,1280,2495,2872,3186,4750,4995
42 | 1040,1280,2495,2872,3186,4750,4995
43 | 1040,1280,2495,2872,4750,4995
44 | 1040,1280,3186,4750,4995
45 | 1040,1280,2372,2495,2872,3186,4750,4995
46 | 1280,2872,3186,4995
47 | 1040,2872,4750
48 | 1040,1280,2495,2872,3186,4750,4995
49 | 1040,1280,2872,4750
50 | 1040,2495,2872,4750
51 | 1280,2495,2872,3186,4995
52 | 1040,1280,2495,2872,4750,4995
53 | 1280,2872,3186,4995
54 | 1040,2495,4750
55 | 1040,2372,2872,3159,4750
56 | 1280,2872,3186,4995
57 | 1280,2495,3186,4995
58 | 1040,2872,4750
59 | 1040,2872,4750
60 | 1040,1280,2495,2872,3186,4750,4995
61 | 2495,2872,4750
62 | 1040,2372,2872,3159,4750
63 | 1040,2495,2872,4750
64 | 1280,2872,3186,4995
65 | 1280,2495,2872,3186,4995
66 | 2495,2872
67 | 1280,2872,4995
68 | 2872,3186,4995
69 | 1040,2372,4750
70 | 1280,2872,3186,4995
71 | 1040,2372,3159,3186,4750
72 | 1280,2872,3186,4995
73 | 1040,2372,2872,4750
74 | 1040,2495,2872,4750
75 | 1280,2872,3186,4995
76 | 1040,2495,4750
77 | 2495
78 | 1040,1280,2495,2872,4750,4995
79 | 1040,2872,4750
80 | 1040,2495,4750
81 | 1040,4750
82 | 2872,3186,4995
83 | 1040,2872,4750
84 | 1280,2872,3186,4995
85 | 1040,1280,2872,3186,4750,4995
86 | 2495,2872
87 | 1280,2872,3186
88 | 1280,2872,3186,4995
89 | 1040,2372,2872,3159
90 | 1040,1280,2495,2872,3186,4750
91 | 1040,1280,2872,3186,4750,4995
92 | 1040,1280,2495,2872,3186,4750,4995
93 | 1040,1280,2372,2872,3159,3186,4750,4995
94 | 1280,2495,2872,3186,4995
95 | 1040,1280,2872,4750,4995
96 | 1040,2372,2495,3159,4750
97 | 1280,2872,3186,4995
98 | 1040,1280,2495,2872,3159,3186,4750,4995
99 | 1040,2495,2872,4750,4995
100 | 1040,1280,2872,3186,4750,4995
101 | 1040,1280,2872,3186,4750
102 | 1040,4750
103 | 1040,1280,2495,2872,3186,4750,4995
104 | 1040,1280,2495,2872,3186,4750
105 | 1040,2495,2872,3186,4750
106 | 1040,1280,2872,3186,4750,4995
107 | 1040,1280,2872,3186,4995
108 | 1040,1280,2872,3186,4750
109 | 1040,1280,2872,4750,4995
110 | 1040,4750
111 | 1280,3186,4995
112 | 1040,1280,2872,3159,3186,4750,4995
113 | 1040,1280,2872,3186,4750,4995
114 | 1040,1280,2495,2872,3186,4750,4995
115 | 1040,1280,2372,2495,2872,3159,3186,4750
116 | 1040,1280,2872,3186,4750,4995
117 | 1040,4750
118 | 1040,1280,2495,2872,4750,4995
119 | 1280,2872,3186
120 | 1040,1280,2872,3186,4750,4995
121 | 1040,1280,2872,3186,4750,4995
122 | 1040,2872,4750
123 | 1040,1280,2872,3186,4750,4995
124 | 1040,1280,2495,2872,3186,4750
125 | 1280,2872,3186,4995
126 | 1040,1280,2872,3186,4750,4995
127 | 1280,2872,3186,4750,4995
128 | 1040,1280,2872,3186,4750,4995
129 | 1040,1280,2495,2872,3186,4750
130 | 1040,1280,3186,4750,4995
131 | 1040,1280,2872,3186,4750,4995
132 | 1040,1280,2872,4750,4995
133 | 1280,2872,3186
134 | 1040,2495,2872,4750
135 | 1280,2872,3186,4995
136 | 1040,1280,2495,2872,3186,4750,4995
137 | 1040,2872,4750
138 | 4995
139 | 1040,4750
140 | 1040,1280,2872,3186,4750
141 | 1040,1280,2872,3186,4750,4995
142 | 1280,2872,3186
143 | 1280,2872,3186,4995
144 | 1040,2372,2872,3159,3186,4750,4995
145 | 1040,1280,2872,3186,4750
146 | 1040,2495,2872,4750
147 | 1040,1280,2872,3186,4750,4995
148 | 1040,2495,4750,4995
149 | 1040,1280,2872,3186,4750
150 | 1040,1280,2872,3186,4750,4995
151 | 1040,2495,2872,4750
152 | 1040,2372,2872,3159,4750
153 | 1280,2872,3186,4995
154 | 1040,1280,2872,3186,4750,4995
155 | 1280,2872
156 | 1040,1280,2495,2872,3186,4750,4995
157 | 1040,1280,3186,4750,4995
158 | 1040,2372,2495,3159,4750
159 | 1040,2495,2872,4750
160 | 1280,2872,3159,3186,4995
161 | 1280,2872,3186,4995
162 | 1040,1280,2495,2872,3186,4750
163 | 1040,2495,2872,4750
164 | 1040,1280,2495,2872,3186,4750,4995
165 | 1040,2872,3186,4750,4995
166 | 1280,2872,3186
167 | 1040,1280,2495,2872,3186,4995
168 | 1040,2872,4750
169 | 1040,1280,2372,2495,2872,3159,3186,4750,4995
170 | 1040,1280,2872,3186,4750,4995
171 | 1040,2495,2872,4750
172 | 1040,1280,2372,2495,2872,3159,3186,4750,4995
173 | 1040,1280,2495,2872,3186,4995
174 | 1040,1280,2372,2495,2872,3186,4750,4995
175 | 1280,3186,4995
176 | 1040,2495,2872,4750
177 | 1040,1280,2495,2872,4750
178 | 1040,4750
179 | 1040,1280,2872,3186,4750,4995
180 | 1040,1280,2872,3186,4750
181 | 1040,1280,2872,4750,4995
182 | 1040,1280,2372,2872,3159,3186,4750,4995
183 | 1040,1280,2872,3186,4750,4995
184 | 1040,2495,2872,4750
185 | 2872
186 | 1040,1280,2495,2872,3186,4750,4995
187 | 1280,2872,3186,4750,4995
188 | 1040,1280,3186,4750,4995
189 | 1040,1280,2495,2872,3186,4995
190 | 1040,1280,2495,2872
191 | 1040,2872
192 | 1040,1280,2495,2872,3186,4750,4995
193 | 1040,1280,2872,3186,4750,4995
194 | 1040,1280,2872,3186,4750
195 | 1040,2372,2495,2872,4750
196 | 1040,1280,2495,2872,3186,4750,4995
197 | 1040,1280,2495,2872,4750,4995
198 | 1040,2495,2872,4750
199 | 1040,1280,2495,2872,3186,4750,4995
200 | 1280,2872,3186,4995
201 | 1040,1280,2872,3186,4750,4995
202 | 1040,1280,2495,2872,3186,4750,4995
203 | 4750
204 | 1280,2872,3186,4995
205 | 1040,2495,4750
206 | 1040,3159,4750
207 | 1040,1280,2872,4750,4995
208 | 1040,2495,2872,4750
209 | 1040,1280,2372,2495,2872,3159,3186,4750,4995
210 | 1040,2372,2495,2872,3159,4750
211 | 1040,1280,2372,2872,3159,3186,4750,4995
212 | 1040,1280,2372,2495,2872,3159,3186,4750,4995
213 | 1040,2372,2872,4750
214 | 1040,1280,2872,3186,4750,4995
215 | 1040,2872
216 | 1040,2872,4750
217 | 1280,2872,3186,4995
218 | 1040,1280,2372,2872,4750,4995
219 | 1040,1280,2495,3186,4750
220 | 1040,2872,4750
221 | 1280,2872,4995
222 | 1040,2495,2872,4750
223 | 1040,4750
224 | 1040,1280,2872,3186,4750,4995
225 | 1040,2372,3159,4750
226 | 1040,1280,2872,3186,4750,4995
227 | 1040,2495,2872,4750
228 | 1040,1280,2872,3186,4750,4995
229 | 1040,1280,2495,2872,4750,4995
230 | 1040,4750
231 | 1280,2872,3186,4995
232 | 1040,4750
233 | 1040,1280,2495,2872,3186,4750,4995
234 | 1040,1280,2872,3186,4750,4995
235 | 2872,3186
236 | 1280,2872,3186,4995
237 | 1040,1280,2872,3159,3186,4750,4995
238 | 1040,4750
239 | 1040,1280,2872,3186,4750,4995
240 | 1040,4750
241 | 1280,2872,3186,4995
242 | 1040,1280,2872,3186,4750
243 | 1040,2372,2495,3159,4750
244 | 1040,1280,2872,3186,4750,4995
245 | 1040,2495,4750
246 | 1280,2872,3186,4995
247 | 1040,1280,2372,2495,2872,3159,3186,4750,4995
248 | 1040,2495,2872,4750
249 | 1280,2495,2872,3186
250 | 1040,2372,2495,2872,3159,4750
251 | 1040,2495,2872,3186,4750
252 | 1040,2495,2872,4750
253 | 1040,1280,2872,3186,4750,4995
254 | 1040,1280,2872,3186,4750,4995
255 | 1280,2872,3186,4995
256 | 1280,2872,3186,4995
257 | 1040,2372,3159,4750
258 | 1040,1280,2872,3186,4750,4995
259 | 1040,4750
260 | 1280,3186,4995
261 | 1280,2872,3186,4995
262 | 1040,1280,2872,3186,4750,4995
263 | 1280,2872,3186,4995
264 | 1040,1280,2372,2495,2872,3159,3186,4750
265 | 1280,2872,3186,4995
266 | 1040,1280,2495,2872,4750,4995
267 | 1040,4750
268 | 1040,1280,2495,2872,3186,4750,4995
269 | 1280,2872,3186,4995
270 | 1040,1280,2372,2872,3159,3186,4750,4995
271 | 1040,2495,2872,4750,4995
272 | 1280,2872,3186,4995
273 | 1040,2872,4750
274 | 1040,1280
--------------------------------------------------------------------------------
/dataset/data3.csv:
--------------------------------------------------------------------------------
1 | 2076,4785,5793,6338,9484
2 | 2076,2564,5793,6395,9484,9994
3 | 5793,9484
4 | 2076,2564,5793,6395,9994
5 | 2076,9484
6 | 2564,5793,6395,9994
7 | 2076,2564,5793,6395,9484,9994
8 | 2076,2564,5016,5793,6395,9484,9994
9 | 2076,2564,5793,6395,9484,9994
10 | 2076,2564,9484,9994
11 | 2564,5793,6395,9994
12 | 2076,4785,5793,6338,9484
13 | 2076,5016,9484
14 | 2076,2564,5793,6395,9484,9994
15 | 2076,2564,5016,5793,6338,6395,9484,9994
16 | 2564,5793,6395,9994
17 | 2564,5793,6395,9994
18 | 5793,6338,9484
19 | 2076,2564,5016,5793,6395,9484,9994
20 | 2564,4785,5793,6338,6395,9484,9994
21 | 2076,5793,6338,9484,9994
22 | 2076,2564,5793,9484,9994
23 | 2076,9484
24 | 2076,2564,5793,6395,9484,9994
25 | 2076,5016,9484
26 | 2564,5793,6395,9484,9994
27 | 2076,5793,9484
28 | 2076,2564,5793,6395,9484,9994
29 | 2076,2564,5793,6395,9484,9994
30 | 2076,5793,6338,6395,9484
31 | 2564,5793,6395,9994
32 | 2076,5016,5793,9484
33 | 2076,5016,5793,9484
34 | 2076,5016,9484
35 | 2076,5793,6395,9484,9994
36 | 2076,2564,5016,5793,6395,9484,9994
37 | 2076,2564,5793,6395,9484,9994
38 | 2076,2564,5016,5793,6395,9484
39 | 2564,5793,6395,9994
40 | 2076,2564,5793,6395,9484
41 | 2076,4785,5016,5793,6338,9484
42 | 2564,5793,9994
43 | 2076,2564,5016,5793,6395,9484,9994
44 | 2076,2564,5793,6395,9484,9994
45 | 2076,2564,4785,5016,5793,6338,6395,9484,9994
46 | 2076,9484,9994
47 | 5793
48 | 2076,2564,4785,5016,5793,6338,6395,9484
49 | 5793,6395
50 | 2564,5793,9994
51 | 2076,2564,5793,6395,9484,9994
52 | 2076,4785,5793,6338,9484
53 | 2564,4785,5793,6338,6395,9994
54 | 2076,9484
55 | 2076,2564,5016,5793,6395,9484,9994
56 | 2564,5016,5793,6395
57 | 2076,9484
58 | 2076,9484
59 | 2076,2564,5793,6395,9484,9994
60 | 2076,2564,5016,5793,6395,9484,9994
61 | 2564,5793,6395,9994
62 | 2076,5016,6338,9484
63 | 2076,2564,6395,9484
64 | 5016,5793,9484
65 | 2076,5793,9484
66 | 2564,5793,6395,9484
67 | 2076,9484
68 | 2076,9484
69 | 2076,2564,5016,5793,6395,9484,9994
70 | 9484
71 | 2076,2564,4785,5016,5793
72 | 2564,5793,9484,9994
73 | 2076,4785,6338,9484
74 | 2076,5793,6395,9484,9994
75 | 2076,2564,6395
76 | 2076,9484
77 | 2076,9484
78 | 2076,4785,5016,5793,6338,9484
79 | 2076,9484
80 | 2076,5793,9484
81 | 2076,5016,5793,9484
82 | 2076,5016,9484
83 | 2564,5016,5793,6395,9994
84 | 2564,5793,6395,9994
85 | 2076,9484
86 | 2076,2564,5793,6395,9484,9994
87 | 2076,5016,5793,9484
88 | 2076,5016,9484
89 | 2076,9484
90 | 2076,2564,5793,6395,9484,9994
91 | 2076,9484
92 | 2076,2564,5016,5793,6395,9484,9994
93 | 2076,5793,6395,9484
94 | 2076,2564,5016,5793,6395,9484,9994
95 | 2076,2564,5016,5793,6395,9484,9994
96 | 2076,9484
97 | 2076,4785,5016,5793,6338,9484
98 | 2076,2564,5793,6395,9994
99 | 2076,2564,5793,6395,9994
100 | 2076,9484
101 | 2076,2564,5016,5793,6395,9484,9994
102 | 2076,2564,5793,6395,9484,9994
103 | 2076,2564,5793,6395,9484,9994
104 | 2564,5793,6395,9994
105 | 2564,5793,6395,9994
106 | 2076,5793,9484
107 | 2076,2564,5793,6395,9484,9994
108 | 2564,5016,5793,6395,9484,9994
109 | 2076,5793,6395,9484
110 | 2076,2564,5793,9484
111 | 5793,9484
112 | 2076,2564,4785,6338,6395,9484,9994
113 | 2076,5016,5793,9484,9994
114 | 2076,2564,5793,6395,9484
115 | 2564,6395,9994
116 | 2076,2564,5793,9484,9994
117 | 2076,2564,5793,6395,9484,9994
118 | 2076,4785,5016,5793,6338,9484
119 | 2076,2564,5793,6395,9484,9994
120 | 2076,2564,5793,6395,9484,9994
121 | 2564,6395,9994
122 | 2076,2564,5016,5793,6338,6395,9484,9994
123 | 2076,2564,5793,9484,9994
124 | 2076,2564,5016,5793,6395,9484
125 | 2076,5016,5793,9484
126 | 2564,5793,6395,9994
127 | 2076,2564,5793,6395,9484,9994
128 | 2564,5016,5793,6395,9994
129 | 2076,5793,9484
130 | 2076,2564,4785,5793,9484,9994
131 | 2076,2564,5016,5793,9484
132 | 2076,2564,4785,5016,5793,6338,6395,9484,9994
133 | 2076,4785,5793,6338,9484,9994
134 | 2564,5793,6395,9484,9994
135 | 2076,2564,5016,5793,6395,9484,9994
136 | 2076,5016,9484
137 | 2564,5793,6395
138 | 2076,5016,5793,6395,9484,9994
139 | 2564,5793,6395,9994
140 | 2076,6395,9484,9994
141 | 2076,2564,4785,5793,6395,9484,9994
142 | 2076,2564,5016,5793,9484
143 | 5793
144 | 2076,9484
145 | 2076,2564,5016,5793,6395,9484,9994
146 | 2076,2564,5016,5793,6395,9484,9994
147 | 2076,5016,5793,6395,9994
148 | 2076,2564,5793,6395
149 | 2076,2564,5016,5793,6395,9484,9994
150 | 2076,2564,5016,5793,6395,9484
151 | 2076,2564,5793,9484,9994
152 | 2076,5793,9484,9994
153 | 2076,2564,5793,6395,9484,9994
154 | 2076,2564,5016,5793,6395,9484,9994
155 | 2076,2564,5016,6395,9484
156 | 2564,5793,6395,9994
157 | 2076,2564,5793,6395,9484,9994
158 | 2076,5793,9484
159 | 2076,5016,5793,6395,9484,9994
160 | 2076,9484
161 | 2076,2564,4785,5793,6338,9484
162 | 2076,4785,5016,6338,9484
163 | 2076,2564,5793,6395,9484,9994
164 | 2076,4785,5016,6338,9484
165 | 2076,2564,5793,6395,9484,9994
166 | 2076,4785,6338,9484
167 | 2076,2564,5793,9484,9994
168 | 2076,5016,5793,9484
169 | 2076,5793,9484
170 | 2564,5793,6395,9994
171 | 2076,9484
172 | 2076,5793,6338,9484
173 | 2564,5793,6395,9994
174 | 2076,2564,4785,5016,5793,6338,6395,9484,9994
175 | 2076,2564,5793,9484
176 | 2076,2564,5793,6395,9484,9994
177 | 2076,2564,5016,5793,6395,9484,9994
178 | 2076,2564,5793,6395,9484,9994
179 | 2076,2564,5016,5793,6395,9484,9994
180 | 2564,5793,6395
181 | 2076,2564,4785,5793,6338,6395,9484
182 | 2076,2564,5793,6395,9484,9994
183 | 2076,2564,5793,6395,9484,9994
184 | 2076,2564,5016,5793,6395,9484,9994
185 | 2076,5016,5793,6395,9484
186 | 2076,2564,5793,6395,9484,9994
187 | 2076,2564,5016,5793,6395,9484,9994
188 | 2076,4785,5016,6338,9484,9994
189 | 4785,6338
190 | 2564,5793,6395,9994
191 | 2076,2564,5793,6395,9484,9994
192 | 2564,5016,5793,6395,9994
193 | 4785,5016,6338
194 | 2076,4785,5793,9484
195 | 2564,5793,6395
196 | 2564,5793,6395,9994
197 | 2076,5016,5793,9484
198 | 2076,2564,5793,6395,9484,9994
199 | 5016
200 | 2076,2564,5793,6395,9484
201 | 2076,2564,6395,9484,9994
202 | 2076,4785,5793,6338,9484
203 | 2076,2564,5793,6395,9484,9994
204 | 2076,5793,6338,9484
205 | 2076,2564,5016,5793,6395,9484,9994
206 | 2076,2564,6395,9484
207 | 2076,2564,5793,9484
208 | 2076,5793,9484
209 | 2564,5793,6395,9994
210 | 2076,2564,5793,9484,9994
211 | 2076
212 | 2076,5016,9994
213 | 2564,5793,6395
214 | 2076,2564,5016,5793,6395,9994
215 | 2076,6395,9484,9994
216 | 2076,2564,5793,6395,9484,9994
217 | 2076,5016,5793,6395,9484
218 | 2076,2564,5016,5793,6395,9484,9994
219 | 2076,2564,5793,6395,9484,9994
220 | 2076,5016,5793,6338,9484
221 | 2076,2564,5793,6395,9484,9994
222 | 5016,9484
223 | 2076,2564,5793,9484,9994
224 | 2076,2564,5016,5793,6395,9484,9994
225 | 2076,5793,9484
226 | 2076,2564,5793,6395,9484
227 | 5793,6395,9994
228 | 2076,9484
229 | 2076,5793,9484
230 | 2076,5793,6395,9484,9994
231 | 2076,2564,5016,5793,6338,9484
232 | 2564,4785,5793,6338,6395,9994
233 | 2564,5793,6395,9484,9994
234 | 2076,2564,5793,6395,9484,9994
235 | 2564,5016,5793,6395,9994
236 | 2076,2564,5016,5793,6395,9484,9994
237 | 2076,2564,5016,5793,6395,9484,9994
238 | 2076,5016,5793,9484
239 | 5016,5793
240 | 2076,2564,5016,5793,6395,9484,9994
241 | 2076,2564,5016,5793,6395
242 | 2076,9484
243 | 2076,5793,6395,9484,9994
244 | 2076,2564,5016,5793,6395,9484,9994
245 | 5016,9484
246 | 2076,2564,5793,6395,9484,9994
247 | 2076,9484
248 | 2076,5016,5793,9484,9994
249 | 2564,5793,6395,9484,9994
250 | 2564,5016,5793,6395,9484,9994
251 | 2076,2564,5016,5793,6395,9484
252 | 5793,6338
253 | 2076,2564,5793
254 | 2076,2564,5016,5793,6395,9484,9994
255 | 2564,5793,6395,9994
256 | 2564,5016,5793,6395,9994
257 | 2076,4785,5793,6338,9484,9994
258 | 2564,6395,9994
259 | 2076,2564,5793,6395,9484,9994
260 | 2076,9484
261 | 2076,2564,5016,5793,6395,9484,9994
262 | 2564,5793,6395,9994
263 | 2076,9484
264 | 2076,5016,6395,9484,9994
265 | 2076,2564,4785,5793,6338
266 | 2564,5793,6395,9994
267 | 2076,2564,5793,6395,9484,9994
268 | 2076,4785,6338,9484
269 | 2076,2564,5016,5793,6338,6395,9484
270 | 2076,5016,9484
271 | 2076,2564,5016,5793,9484
272 | 2076,2564,5016,5793,6395,9484,9994
273 | 2076,4785,6338,9484
274 | 2076,2564,5793,9484,9994
275 | 2076,2564,5793,6395,9484,9994
276 | 2076,2564,5793,6395,9484
277 | 2076,4785,5016,5793,9484
278 | 2564,5016,5793,6395,9994
279 | 2076,5016,5793,9484
280 | 2076,5793,9484
281 | 2564,5793,6395,9994
282 | 2076,4785,5016,5793,6338
283 | 2076,2564,5016,5793,6395,9484,9994
284 | 2076,5016,5793
285 | 2076,4785,5016,9484
286 | 2076,5793,9484
287 | 2076,2564,5793,9484,9994
288 | 2564,5016,5793,9994
289 | 2564,5016,5793,6395,9994
290 | 5793,6395,9994
291 | 2076,2564,5016,5793,9484
292 | 2076,9484
293 | 2076,2564,5793,6395,9484,9994
294 | 2076,2564,5793,6395,9484,9994
295 | 4785,5793
296 | 2076,2564,5016,6395,9484
297 | 2076
298 | 2076,4785,6338,9484
299 | 2076,2564,5793,6338,9484,9994
300 | 2076,5016,5793,9484
301 | 2076,6395,9484
302 | 2076,2564,5793,9484,9994
303 | 2076,2564,5016,5793,9484
304 | 2076,5016,5793,6395,9484,9994
305 | 2076,5016,5793,9484
306 | 2076,2564,5016,5793,9484,9994
307 | 2076,2564,5016,5793,6395,9484,9994
308 | 2076,2564,5016,5793,9994
309 | 2076,2564,5016,5793,6395,9484,9994
310 | 2564,5793,6395,9994
311 | 2076,2564,5793,6395,9484
312 | 2076,9484
313 | 2076,5016,5793,9484,9994
314 | 2076,4785,9484
315 | 2076,2564,4785,5793,6338,6395,9484,9994
316 | 2564,5793,6395,9994
317 | 2076,2564,5793,6395,9994
318 | 5016,5793
319 | 2564,5016,5793,6338,6395,9994
320 | 2076,2564,5793,6395,9484,9994
321 | 2076,5016,5793,6395,9484,9994
322 | 5793
323 | 2076,9484
324 | 2076,2564,5793,6395,9484
325 | 2564,5016,5793,6395,9994
326 | 2076,5016,5793,6395,9484
327 | 2076,2564,5016,5793,6395,9484,9994
328 | 2076,2564,5793,6395,9484,9994
329 | 2076,2564,5016,5793,6395,9484,9994
330 | 2564,5793,9994
331 | 2076,5016,9484
332 | 2076,2564,5016,5793,6395,9484,9994
333 | 2076,2564,5016,5793,6395,9484,9994
334 | 2564,5016,5793,6395,9484,9994
335 | 2076,2564,5793,6395,9484,9994
336 | 2076,2564,5016,5793,6395,9484,9994
337 | 2564,5793,6395,9484,9994
338 | 2076,5793,6395,9484
339 | 2076,2564,5793,6395,9484
340 | 2564,5793,6395,9994
341 | 2076,2564,5793,6338,6395,9994
342 | 2076,2564,5016,5793,6395,9484,9994
343 | 2076,5793,6395,9484,9994
344 | 2076,2564,5016,5793,6395,9484,9994
345 | 2076,2564,5793,6395,9994
346 | 2076,4785,5016,5793,6338,9484
347 | 2076,6395,9484
348 | 2076,9484
349 | 2076,2564,5793,9484,9994
350 | 2564,5793,9994
351 | 2564,4785,5793,6338,6395,9994
352 | 2076,2564,5016,5793,6395,9484
353 | 2076,9484
354 | 2076,2564,5793,6395,9484,9994
355 | 2076,5793,9484
356 | 2564,5793
357 | 2076,2564,5793,6395,9484,9994
358 | 2076,9484
359 | 2076,5016,5793,9484
360 | 2076,2564,5016,5793,6395
361 | 2076,4785,5016,6338,9484
362 | 2076,5016,9484
363 | 2564,6395,9994
364 | 2076,2564,5016,5793,6395,9484
365 | 2564,5793,6395,9484,9994
366 | 2076,5016,5793
367 | 2564,6395,9994
368 | 2564,4785,5793,6395,9994
369 | 2076,2564,5016,5793,6395,9484,9994
370 | 9484
371 | 2076,2564,5793,6395,9484,9994
372 | 2076,2564,5016,5793,6395,9484,9994
373 | 2076,9484
374 | 2564,4785,5016,5793,6338,9994
375 | 2076,2564,5793,6395,9484,9994
376 | 2564,5793,6395
377 | 2076,2564,5793,6395,9484,9994
378 | 2076,2564,5793,6395,9484,9994
379 | 2076,2564,5793,9484
380 | 2076,2564,5793,6395,9484,9994
381 | 2076,5016,5793,9484
382 | 2076,2564,5016,9484
383 | 2564,5016,5793,6395,9994
384 | 2076,2564,5793,6395,9484,9994
385 | 2564,4785,5793,6338,6395,9994
386 | 2076,2564,5793,9484,9994
387 | 2076,5016,9484
388 | 2076,5016,5793,9484
389 | 2076,2564,5793,9484
390 | 2076,5016,9484
391 | 2076,4785,5016,5793,6338,6395,9484,9994
392 | 2076,2564,5793,6395,9484,9994
393 | 2076,2564,5016,5793,9484,9994
394 | 2076,2564,5793,9484
395 | 2076,5793,9484
396 | 2076,4785,5793,6338,9484
397 | 2564,5793,6395,9994
398 | 2076,5016,5793,6395,9484,9994
399 | 2076,2564,5793,6395,9484,9994
400 | 2076,9484
401 | 2076,2564,5793,6395,9484,9994
402 | 2076,4785,5793,6338,9484,9994
403 | 2076,6338,9484
404 | 2076,9484
405 | 5793,6395,9994
406 | 2076,5016,5793,9484
407 | 2076,2564,5016,5793,6395,9484,9994
408 | 5793
409 | 5793,6395,9994
410 | 2076,2564,5793,6395,9484,9994
411 | 2076,2564,4785,9484,9994
412 | 2564,5793,6395,9484,9994
413 | 2076,5016,6395,9484,9994
414 | 2076,5016,5793,6395,9484,9994
415 | 2076,5016,5793,9484
416 | 2076,2564,5016,5793,6395,9484,9994
417 | 2076,2564,5793,6395,9484
418 | 2076,2564,5793,6395,9484,9994
419 | 2076,2564,4785,6338,6395,9484
420 | 2076,5793,9484
421 | 2076,5016,5793,9484
422 | 2564,4785,5793,6338,6395,9994
423 | 2076,2564,5016,5793,6395,9484,9994
424 | 2076,5016,5793,9484
425 | 5793,6395,9484,9994
426 | 2076,5016,6395,9484,9994
427 | 2076,2564,5793,9484
428 | 2564,5793
429 | 2564,5793,6395,9994
430 | 2564,5793,6395,9994
431 | 2076,5016,9484
432 | 2076,4785,5793,6338,9484
433 | 2076,4785,5793,6338,6395,9484,9994
434 | 2076,5016,9484
435 | 5016
436 | 2076,9484
437 | 2076,2564,5016,5793,6395,9484,9994
438 | 2076,2564,4785,5016,5793,6338,6395,9484,9994
439 | 2076,2564,5793,6395,9484,9994
440 | 2076,9484
441 | 2076,9484
442 | 2076,2564,5793,6395,9484,9994
443 | 2076,2564,5793,6395,9484,9994
444 | 2076,2564,9484,9994
445 | 4785,5016,5793,6338,6395,9994
446 | 2076,2564,5016,5793,6395,9484,9994
447 | 2076,2564,5016,5793,6395,9484
448 | 2564,6395,9994
449 | 2076,2564,5793,6395,9484
450 | 5793,9484
451 | 2564,5793,6395,9994
452 | 6395,9994
453 | 2076,2564,5016,5793,6395,9484,9994
454 | 2564,5016,5793,9994
455 | 2076,2564,5793,6395,9484,9994
456 | 2076,5016,9484
457 | 2076,4785,5016,5793,6338,6395,9484,9994
458 | 2076,2564,4785,5016,5793,6395,9484,9994
459 | 2564,5016,5793,6395,9994
460 | 2076,5016,9484
461 | 2076,5016,9484
462 | 2076,2564,5016,5793,9484
463 | 2076,2564,5793,6395,9484,9994
464 | 2076,4785,6338,9484
465 | 2076,2564,5016,5793,6395,9484
466 | 2564,5793,6395,9484
467 | 2076,5016,5793,6395,9484
468 | 2076,5793,9484
469 | 2564,5793,6395,9484,9994
470 | 2076,4785,5793,6338,9484
471 | 2076,2564,9484
472 | 2076,2564,5793,6395,9484
473 | 2076,4785,5016,6338,9484
474 | 2076,5793,6395,9484,9994
475 | 2564,5016,5793,6395,9994
476 | 2076,2564,5016,6395,9484,9994
477 | 2076,9484
478 | 2564,5793,6395,9994
479 | 2076,5016,5793,6395,9484,9994
480 | 2076,2564,5793,6395,9484,9994
481 | 2076,2564,5016,5793,6395,9484,9994
482 | 2076,2564,5793,6395,9484,9994
483 | 2076,2564,5793,6395,9484
484 | 2564,5016,5793,6395
485 | 2076,5793,6395,9484,9994
486 | 2076,9484
487 | 5793,6395,9994
488 | 2076,2564,5793,6395,9484,9994
489 | 2076,2564,5016,5793,6395,9484,9994
490 | 2564,4785,5793,6395,9994
491 | 2564,5016,5793,6395,9994
492 | 2076,2564,5793,9484
493 | 2076,4785,6338,9484
494 | 2076,2564,5793,6395,9484,9994
495 | 2076,2564,5793,6395,9484,9994
496 | 2076,2564,6395,9484,9994
497 | 2076,9484
498 | 2076,9484
499 | 2564,5793,6395,9994
500 | 2564,5793,6395
501 | 2076,2564,9484
502 | 2564,5793,9994
--------------------------------------------------------------------------------