Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update PrefixSpan.py #441

Merged
merged 1 commit into from
Jun 12, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions PAMI/sequentialPattern/basic/PrefixSpan.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
import sys
sys.setrecursionlimit(10000)

class PrifixSpan(_ab._sequentialPatterns):
class PrefixSpan(_ab._sequentialPatterns):
"""
Prifix Span is one of the fundamental algorithm to discover sequential frequent patterns in a transactional database.
Prefix Span is one of the fundamental algorithm to discover sequential frequent patterns in a transactional database.
This program employs Prifix Span property (or downward closure property) to reduce the search space effectively.
This algorithm employs depth-first search technique to find the complete set of frequent patterns in a
transactional database.
Expand Down Expand Up @@ -84,26 +84,26 @@ class PrifixSpan(_ab._sequentialPatterns):
Format:
------
basic:
python3 PrifixSpan.py <inputFile> <outputFile> <minSup>
python3 PrefixSpan.py <inputFile> <outputFile> <minSup>
length:
python3 PrifixSpan.py <inputFile> <outputFile> <minSup> "<sep(default="\t")>" <maxLength>
python3 PrefixSpan.py <inputFile> <outputFile> <minSup> "<sep(default="\t")>" <maxLength>
gap:
python3 PrifixSpan.py <inputFile> <outputFile> <minSup> <sep(default="\t")> <maxLength(default=float("inf"))> <maxGap>
python3 PrefixSpan.py <inputFile> <outputFile> <minSup> <sep(default="\t")> <maxLength(default=float("inf"))> <maxGap>
Examples:
---------
basic
python3 PrifixSpan.py sampleDB.txt patterns.txt 10.0 (minSup will be considered in times of minSup and count of database transactions)
python3 PrifixSpan.py sampleDB.txt patterns.txt 10 (minSup will be considered in support count or frequency)
python3 PrefixSpan.py sampleDB.txt patterns.txt 10.0 (minSup will be considered in times of minSup and count of database transactions)
python3 PrefixSpan.py sampleDB.txt patterns.txt 10 (minSup will be considered in support count or frequency)
length
python3 PrifixSpan.py sampleDB.txt patterns.txt 10 "\t" 2 (find the pattern that have two or less itemsets and ten or more support)
python3 PrefixSpan.py sampleDB.txt patterns.txt 10 "\t" 2 (find the pattern that have two or less itemsets and ten or more support)
gap
python3 PrifixSpan.py sampleDB.txt patterns.txt 10 "\t" float("inf") 3
python3 PrefixSpan.py sampleDB.txt patterns.txt 10 "\t" float("inf") 3
length and gap
python3 PrifixSpan.py sampleDB.txt patterns.txt 10 2
python3 PrefixSpan.py sampleDB.txt patterns.txt 10 2
Sample run of the importing code:
---------------------------------
import PAMI.frequentPattern.basic.PrifixSpan as alg
obj = alg.PrifixSpan(iFile, minSup)
import PAMI.frequentPattern.basic.PrefixSpan as alg
obj = alg.PrefixSpan(iFile, minSup)
obj.startMine()
frequentPatterns = obj.getPatterns()
print("Total number of Frequent Patterns:", len(frequentPatterns))
Expand Down Expand Up @@ -546,13 +546,13 @@ def printResults(self):
_ap = str()
if len(_ab._sys.argv) >= 4 or len(_ab._sys.argv) <= 7:
if len(_ab._sys.argv) == 7:
_ap = PrifixSpan(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4],_ab._sys.argv[5],_ab._sys.argv[6])
_ap = PrefixSpan(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4],_ab._sys.argv[5],_ab._sys.argv[6])
if len(_ab._sys.argv) == 6:
_ap = PrifixSpan(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4],_ab._sys.argv[5])
_ap = PrefixSpan(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4],_ab._sys.argv[5])
if len(_ab._sys.argv) == 5:
_ap = PrifixSpan(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4])
_ap = PrefixSpan(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4])
if len(_ab._sys.argv) == 4:
_ap = PrifixSpan(_ab._sys.argv[1], _ab._sys.argv[3])
_ap = PrefixSpan(_ab._sys.argv[1], _ab._sys.argv[3])
_ap.startMine()
_Patterns = _ap.getPatterns()
print("Total number of Frequent Patterns:", len(_Patterns))
Expand All @@ -565,7 +565,7 @@ def printResults(self):
print("Total ExecutionTime in ms:", _run)

else:
_ap = PrifixSpan('strtest.txt',2, ' ')
_ap = PrefixSpan('strtest.txt',2, ' ')
_ap.startMine()
_Patterns = _ap.getPatterns()
_memUSS = _ap.getMemoryUSS()
Expand Down