Skip to content

Commit

Permalink
Merge pull request #543 from LasyaPalla/main
Browse files Browse the repository at this point in the history
Updated AssociationRules algorithms
  • Loading branch information
udayRage authored Nov 5, 2024
2 parents d491ed5 + 2cccd8c commit af2b5ab
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 17 deletions.
7 changes: 4 additions & 3 deletions PAMI/AssociationRules/basic/_ARWithLeverage.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def _generateWithLeverage(self, lhs, rhs) -> float:
:rtype: float
"""
s = lhs + '\t' + rhs
if self._frequentPatterns.get(s) == None:
if self._frequentPatterns.get(s) is None:
return 0
minimum = self._frequentPatterns[s]
conf_lhs = minimum / self._frequentPatterns[lhs]
Expand Down Expand Up @@ -239,6 +239,7 @@ def __init__(self, iFile, minConf, sep) -> None:
self._finalPatterns = {}
self._sep = sep


def _readPatterns(self) -> list:
"""
Expand All @@ -250,7 +251,7 @@ def _readPatterns(self) -> list:
self._frequentPatterns = {}
k = []
if isinstance(self._iFile, _ab._pd.DataFrame):
pattern, sup = [], []
pattern, support = [], []
if self._iFile.empty:
print("its empty..")
i = self._iFile.columns.values.tolist()
Expand Down Expand Up @@ -402,7 +403,7 @@ def printResults(self) -> None:
if len(_ab._sys.argv) == 5:
_ap = ARWithLeverage(_ab._sys.argv[1], float(_ab._sys.argv[3]), _ab._sys.argv[4])
if len(_ab._sys.argv) == 4:
_ap = ARWithLeverage(_ab._sys.argv[1], _ab._sys.argv[3])
_ap = ARWithLeverage(_ab._sys.argv[1], float(_ab._sys.argv[3]),sep='\t')
_ap.startMine()
_ap.mine()
print("Total number of Association Rules:", len(_ap.getPatterns()))
Expand Down
6 changes: 3 additions & 3 deletions PAMI/AssociationRules/basic/_ARWithLift.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def _generateWithLift(self, lhs, rhs) -> float:
:rtype: float
"""
s = lhs + '\t' + rhs
if self._frequentPatterns.get(s) == None:
if self._frequentPatterns.get(s) is None:
return 0
minimum = self._frequentPatterns[s]
conf_lhs = minimum / self._frequentPatterns[lhs]
Expand Down Expand Up @@ -245,7 +245,7 @@ def _readPatterns(self) -> list:
self._frequentPatterns = {}
k = []
if isinstance(self._iFile, _ab._pd.DataFrame):
pattern, sup = [], []
pattern, support = [], []
if self._iFile.empty:
print("its empty..")
i = self._iFile.columns.values.tolist()
Expand Down Expand Up @@ -391,7 +391,7 @@ def printResults(self) -> None:
if len(_ab._sys.argv) == 5:
_ap = ARWithLift(_ab._sys.argv[1], float(_ab._sys.argv[3]), _ab._sys.argv[4])
if len(_ab._sys.argv) == 4:
_ap = ARWithLift(_ab._sys.argv[1], _ab._sys.argv[3])
_ap = ARWithLift(_ab._sys.argv[1], _ab._sys.argv[3],sep='\t')
_ap.startMine()
_ap.mine()
print("Total number of Association Rules:", len(_ap.getPatterns()))
Expand Down
10 changes: 5 additions & 5 deletions PAMI/AssociationRules/basic/_RuleMiner.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def _generaeWithConfidence(self, lhs, rhs):
:type rhs: str
"""
s = lhs + '\t' + rhs
if self._frequentPatterns.get(s) == None:
if self._frequentPatterns.get(s) is None:
return 0
minimum = self._frequentPatterns[s]
conflhs = minimum / self._frequentPatterns[lhs]
Expand Down Expand Up @@ -167,7 +167,7 @@ def _generateWithLift(self, lhs, rhs):
:type rhs: str
"""
s = lhs + '\t' + rhs
if self._frequentPatterns.get(s) == None:
if self._frequentPatterns.get(s) is None:
return 0
minimum = self._frequentPatterns[s]
conflhs = minimum / self._frequentPatterns[lhs]
Expand Down Expand Up @@ -241,7 +241,7 @@ def _generateWithLeverage(self, lhs, rhs):
:type rhs: str
"""
s = lhs + '\t' + rhs
if self._frequentPatterns.get(s) == None:
if self._frequentPatterns.get(s) is None:
return 0
minimum = self._frequentPatterns[s]
conflhs = minimum / self._frequentPatterns[lhs]
Expand Down Expand Up @@ -387,7 +387,7 @@ def _readPatterns(self):
self._frequentPatterns = {}
k = []
if isinstance(self._iFile, _ab._pd.DataFrame):
pattern, sup = [], []
pattern, support = [], []
if self._iFile.empty:
print("its empty..")
i = self._iFile.columns.values.tolist()
Expand Down Expand Up @@ -542,7 +542,7 @@ def printResults(self):
if len(_ab._sys.argv) == 6:
_ap = RuleMiner(_ab._sys.argv[1], _ab._sys.argv[3], float(_ab._sys.argv[4]), _ab._sys.argv[5])
if len(_ab._sys.argv) == 5:
_ap = RuleMiner(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4])
_ap = RuleMiner(_ab._sys.argv[1], _ab._sys.argv[3], _ab._sys.argv[4],sep='\t')
_ap.startMine()
_ap.mine()
print("Total number of Association Rules:", len(_ap.getPatterns()))
Expand Down
2 changes: 1 addition & 1 deletion PAMI/AssociationRules/basic/confidence.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ def printResults(self):
if len(_ab._sys.argv) == 5:
_ap = confidence(_ab._sys.argv[1], float(_ab._sys.argv[3]), _ab._sys.argv[4])
if len(_ab._sys.argv) == 4:
_ap = confidence(_ab._sys.argv[1], _ab._sys.argv[3])
_ap = confidence(_ab._sys.argv[1], float(_ab._sys.argv[3]))
_ap.startMine()
_ap.mine()
print("Total number of Association Rules:", len(_ap.getAssociationRules()))
Expand Down
2 changes: 1 addition & 1 deletion PAMI/AssociationRules/basic/leverage.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ def printResults(self):
if len(_ab._sys.argv) == 5:
_ap = leverage(_ab._sys.argv[1], float(_ab._sys.argv[3]), _ab._sys.argv[4])
if len(_ab._sys.argv) == 4:
_ap = leverage(_ab._sys.argv[1], _ab._sys.argv[3])
_ap = leverage(_ab._sys.argv[1], _ab._sys.argv[3],sep='\t')
_ap.startMine()
_ap.mine()
print("Total number of Association Rules:", len(_ap.getAssociationRules()))
Expand Down
8 changes: 4 additions & 4 deletions PAMI/AssociationRules/basic/lift.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,9 @@ def mine(self):
antecedent = c
consequent = tuple(sorted([x for x in keys[i] if x not in antecedent]))
# print(antecedent, consequent)
lift = key / (self._associationRules[antecedent]) * self._associationRules[consequent]
if lift >= self._minLift:
self._associationRules[antecedent + tuple(['->']) + keys[i]] = lift
lift_ = key / (self._associationRules[antecedent]) * self._associationRules[consequent]
if lift_ >= self._minLift:
self._associationRules[antecedent + tuple(['->']) + keys[i]] = lift_

self._endTime = _ab._time.time()
process = _ab._psutil.Process(_ab._os.getpid())
Expand Down Expand Up @@ -340,7 +340,7 @@ def printResults(self):
if len(_ab._sys.argv) == 5:
_ap = lift(_ab._sys.argv[1], float(_ab._sys.argv[3]), _ab._sys.argv[4])
if len(_ab._sys.argv) == 4:
_ap = lift(_ab._sys.argv[1], _ab._sys.argv[3])
_ap = lift(_ab._sys.argv[1], float(_ab._sys.argv[3]),sep='\t')
_ap.startMine()
_ap.mine()
print("Total number of Association Rules:", len(_ap.getAssociationRules()))
Expand Down

0 comments on commit af2b5ab

Please sign in to comment.