This forum is about

Delta Value in TNS

Posted by:
**
Selwyn
**

Date: June 25, 2019 05:24PM

In the Documentation for the TNS algorithm "Mining the Top-K Non-Redundant Sequential Rules", there is a parameter named Delta which is an integer greater than 0 than increases the precision of the result. I have no idea what to put for this value or how it scales toward precision. Can anyone offer more context?

Posted by:
**
webmasterphilfv
**

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.

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.