Re: Delta Value in TNS
Date: June 25, 2019 05:48PM
Hi, Thanks for using SPMF.
The TNS algorithm does not guarantee finding an exact result (it may miss some patterns). The delta parameter increase the number of patterns that TNS keeps in memory during the search by delta, and thus increase the probability that the result is exact.
If delta is set to a larger value, then there is more chance that the algorithm does not miss patterns. But the execution time and memory usage may be longer.
If delta is set to a small value, then there is more chance that the algorithm may miss patterns.
In experiments of the TNS paper, I used different values such as delta = 300, delta = 1000 and delta = 6000. For some dataset, delta = 300 was enough to obtain an exact result, while for other dataset, it was not enough. How to set the parameter really depends on the dataset.
Intuitively, the meaning of delta is a number of additional rules to keep in memory. If k = 100 and delta = 50, it means that the algorithm will keep the best 150 rules when searching. Thus how to set delta depends on the size of the search space, and thus on the dataset.
Ideally, we could set delta to very large values to make sure that we most likely miss no patterns. But it increases the runtime and memory usage. Thus, a reasonable idea is to set it to somewhere in the 100 to 1000 range, depending on your data. If the algorithm is fast, you may increase delta. If the algorithm is too slow, you may decrease delta.
Hope this helps.