RHUIM
- class PAMI.relativeHighUtilityPattern.basic.RHUIM.RHUIM(iFile: str, minUtil: int, minUR: float, sep: str = '\t')[来源]
基础:
_utilityPatterns- Description:
RHUIM算法帮助我们从事务数据库中挖掘相对高效用项集。
- Reference:
R. U. Kiran, P. Pallikila, J. M. Luna, P. Fournier-Viger, M. Toyoda 和 P. K. Reddy, “使用零不变度量在非常大的交易数据库中挖掘相对高效用项集,”
2021年IEEE国际大数据会议(Big Data),美国佛罗里达州奥兰多,2021年,第252-262页, doi: 10.1109/BigData52589.2021.9672064。
- Parameters:
iFile – str : 输入文件的名称,用于挖掘相对高效用模式的完整集合
oFile – str : 用于存储完整相对高效用模式集的输出文件名
minSup – float 或 int 或 str : minSup 度量约束了数据库中模式必须出现的最小交易数量 示例:minSup=10 将被视为整数,而 minSup=10.0 将被视为浮点数
sep – str : 此变量用于在事务中区分不同的项目。默认的分隔符是制表符。但是,用户可以覆盖他们的默认分隔符。
minUtil – int : 最小效用阈值。
- Attributes:
- iFilefile
用于挖掘完整模式集的输入文件名
- oFilefile
输出文件的名称,用于存储完整的模式集
- memoryRSSfloat
存储程序消耗的RSS内存总量
- startTimefloat
记录采矿过程的开始时间
- endTimefloat
记录挖掘过程的完成时间
- minUtilint
用户给定的minUtil值
- minURfloat
用户给定的minUR值
- relativeHighUtilityItemSetsmap
相对高效用项集的集合
- candidateCountint
候选人数量
- utilityBinArrayLUlist
用于保存数据库中项目本地效用值的映射
- utilityBinArraySUlist
一个用于保存项目子树效用值的映射是数据库
- oldNamesToNewNameslist
一个包含旧名称和项目新名称作为键值对的映射
- newNamesToOldNameslist
一个包含新名称和旧名称的映射,其中项目的新旧名称作为键值对
- maxMemoryfloat
此程序运行所使用的最大内存
- patternCountint
RHUI的数量
- itemsToKeeplist
仅保留有前景的项目,即可以扩展其他项目以形成RHUI的项目
- itemsToExplorelist
需要探索的项目列表
- Methods:
- mine()
挖掘过程将从此处开始
- getPatterns()
将使用此函数检索完整的模式集
- save(oFile)
完整的模式集将被加载到一个输出文件中
- getPatternsAsDataFrame()
完整的模式集将被加载到数据框中
- getMemoryUSS()
从该函数中获取的挖矿过程消耗的USS内存总量
- getMemoryRSS()
将从该函数中检索出挖矿过程消耗的RSS内存总量
- getRuntime()
从该函数中获取的挖掘过程所花费的总运行时间
- backTrackingRHUIM(transactionsOfP, itemsToKeep, itemsToExplore, prefixLength)
一种递归挖掘RHUIs的方法
- useUtilityBinArraysToCalculateUpperBounds(transactionsPe, j, itemsToKeep)
一种计算可以扩展itemSet P和e的所有项的子树效用和局部效用的方法
- output(tempPosition, utility)
一种根据用户选择将相对高效用项集输出到文件或内存的方法
- is_equal(transaction1, transaction2)
一种检查两个交易是否相同的方法
- useUtilityBinArrayToCalculateSubtreeUtilityFirstTime(dataset)
一种计算单个项目的子树效用值的方法
- sortDatabase(self, transactions)
一种排序交易的方法
- sort_transaction(self, trans1, trans2)
一种排序交易的方法
- useUtilityBinArrayToCalculateLocalUtilityFirstTime(self, dataset)
一种计算单个项目集本地效用值的方法
在终端上执行代码的方法
Format: (.venv) $ python3 RHUIM.py <inputFile> <outputFile> <minUtil> <sep> Example usage: (.venv) $ python3 RHUIM.py sampleTDB.txt output.txt 35 20 .. note:: minSup will be considered in times of minSup and count of database transactions
将此算法导入到python程序中
from PAMI.relativeHighUtilityPattern.basic import RHUIM as alg obj=alg.RHUIM("input.txt", 35, 20) obj.mine() frequentPatterns = obj.getPatterns() print("Total number of Frequent Patterns:", len(frequentPatterns)) obj.savePatterns(oFile) Df = obj.getPatternsAsDataFrame() memUSS = obj.getmemoryUSS() print("Total Memory in USS:", memUSS) memRSS = obj.getMemoryRSS() print("Total Memory in RSS", memRSS) run = obj.getRuntime() print("Total ExecutionTime in seconds:", run)
致谢:
完整的程序由Pradeep Pallikila在Rage Uday Kiran教授的指导下编写。
- sortDatabase(transactions: list) None[来源]
一种排序交易的方法
- Attributes:
- Parameters:
transactions (list) – 项目的交易
- Returns:
已排序的交易。
- Return type:
交易或列表
- sort_transaction(trans1: _Transaction, trans2: _Transaction) int[来源]
一种排序交易的方法
- Attributes:
- Parameters:
trans1 (Transaction) – 第一笔交易。
:param trans2: 第二个交易。 :type trans2: 交易 :return: 排序后的交易。 :rtype: 交易