SHUIM
- class PAMI.highUtilitySpatialPattern.basic.SHUIM.SHUIM(iFile: str, nFile: str, minUtil: int, sep: str = '\t')[来源]
基础:
_utilityPatterns- Description:
空间高效用项集挖掘(SHUIM)旨在发现时空数据库中满足用户指定的最小效用和最大距离约束的所有项集
- Reference:
Rage, Uday & Veena, Pamalla & Penugonda, Ravikumar & Raj, Bathala & Dao, Minh & Zettsu, Koji & Bommisetti, Sai. (2023). HDSHUI-miner: 一种用于在高维时空数据库中挖掘空间高效用项集的新算法。应用智能。53. 1-26. 10.1007/s10489-022-04436-w.
- Parameters:
iFile – str : 输入文件的名称,用于挖掘完整的高效用空间模式集
oFile – str : 用于存储完整的高效用空间模式集的输出文件名
minSup – int 或 float 或 str : 用户可以以计数或数据库大小的比例指定minSup。如果程序检测到minSup的数据类型为整数,则将其视为计数。否则,将视为浮点数。
maxPer – float : 用户可以指定maxPer为数据库大小的计数或比例。如果程序检测到maxPer的数据类型为整数,则将其视为以计数表示。
minUtil – int : 用户给定的最小效用阈值
maxMemory – int : 此程序运行所使用的最大内存
candidateCount – int : 在计算高效用空间模式时要考虑的候选数量
nFile – str : 用于挖掘完整的高效用空间模式集合的输入文件名
sep – str : 此变量用于在事务中区分不同的项目。默认的分隔符是制表符。但是,用户可以覆盖他们的默认分隔符。
- Attributes:
- iFilefile
输入文件的名称,用于挖掘完整的频繁模式集
- nFilefile
包含项目邻居的邻居文件的名称
- oFilefile
输出文件的名称,用于存储完整的频繁模式集
- memoryRSSfloat
存储程序消耗的RSS内存总量
- startTime:float
记录采矿过程的开始时间
- endTime:float
记录挖掘过程的完成时间
- minUtilint
用户给定的最小效用值
- highUtilityItemSets: map
高效用项集集合
- candidateCount: int
候选人数量
- utilityBinArrayLU: list
一个用于保存数据库中项目pmu值的映射
- utilityBinArraySU: list
一个用于保存项目子树效用值的映射是数据库
- oldNamesToNewNames: list
一个用于保存项目子树效用值的映射是数据库
- newNamesToOldNames: list
用于存储旧名称对应新名称的映射
- Neighboursmap
用于存储项目邻居的字典
maxMemory: 该程序运行时所使用的最大内存 patternCount: int
SHUI的数量
- itemsToKeep: list
只保留有前景的项目,即那些twu >= minUtil的项目
- itemsToExplore: list
保留子树效用大于最小效用的项目
- Methods:
- mine()
挖掘过程将从此处开始
- getPatterns()
将使用此函数检索完整的模式集
- save(oFile)
完整的频繁模式集将被加载到输出文件中
- getPatternsAsDataFrame()
完整的频繁模式集将被加载到数据框中
- getMemoryUSS()
从该函数中获取的挖矿过程消耗的USS内存总量
- getMemoryRSS()
将从该函数中检索出挖矿过程消耗的RSS内存总量
- getRuntime()
从该函数中获取的挖掘过程所花费的总运行时间
- calculateNeighbourIntersection(self, prefixLength)
一种返回项目共同邻居的方法
- backtrackingEFIM(transactionsOfP, itemsToKeep, itemsToExplore, prefixLength)
一种递归挖掘SHUIs的方法
- useUtilityBinArraysToCalculateUpperBounds(transactionsPe, j, itemsToKeep, neighbourhoodList)
一种计算可以扩展itemSet P和e的所有项的子树效用和局部效用的方法
- output(tempPosition, utility)
一种方法根据用户的选择将高效用项集保存到文件或内存中
- _isEqual(transaction1, transaction2)
一种检查两个交易是否相同的方法
- intersection(lst1, lst2)
一个返回两个列表交集的方法
- useUtilityBinArrayToCalculateSubtreeUtilityFirstTime(dataset)
扫描初始数据库,使用效用-箱数组计算每个项目的子树效用
- sortDatabase(self, transactions)
一种按PMU顺序排序交易的方法
- sort_transaction(self, trans1, trans2)
一种按PMU顺序排序交易的方法
- useUtilityBinArrayToCalculateLocalUtilityFirstTime(self, dataset)
一种使用实用程序二进制数组扫描数据库以计算pmus的方法
在终端上执行代码:
Format: (.venv) $ python3 SHUIM.py <inputFile> <outputFile> <Neighbours> <minUtil> <sep> Example Usage: (.venv) $ python3 SHUIM.py sampleTDB.txt output.txt sampleN.txt 35
注意
minSup 将被视为数据库事务的百分比
导入代码的示例运行:
from PAMI.highUtilitySpatialPattern.basic import SHUIM as alg obj=alg.SHUIM("input.txt","Neighbours.txt",35) obj.mine() frequentPatterns = obj.getPatterns() print("Total number of Spatial high utility Patterns:", len(frequentPatterns)) obj.save("output") 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教授的指导下编写。