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教授的指导下编写。

getMemoryRSS() float[来源]

将从该函数中检索出挖矿过程消耗的RSS内存总量

Returns:

返回挖掘过程消耗的RSS内存

Return type:

浮点数

getMemoryUSS() float[来源]

从该函数中获取的挖矿过程消耗的USS内存总量

Returns:

返回采矿过程消耗的USS内存

Return type:

浮点数

getPatterns() Dict[str, str][来源]

在挖掘过程完成后发送模式集合的函数

Returns:

返回模式

Return type:

字典

getPatternsAsDataFrame() DataFrame[来源]

将最终模式存储在数据框中

Returns:

返回数据框中的模式

Return type:

pd.DataFrame

getRuntime() float[来源]

计算采矿过程所花费的总运行时间

Returns:

返回采矿过程所花费的总运行时间

Return type:

浮点数

mine() None[来源]

启动操作的主程序

printResults() None[来源]

此函数用于打印结果

save(outFile: str) None[来源]

完整的模式集将被加载到输出文件中

Parameters:

outFile (csv 文件) – 输出文件的名称

Returns:

startMine() None[来源]

启动操作的主程序