1. To check the minFHM algorithm, we consider the dataset "DB_utility.txt" in the example on the webpage at address (URL) http://www.philippe-fournier-viger.com/spmf/MinFHM.php 3 5 1 2 4 6:30:1 3 5 10 6 5 3 5 2 4:20:3 3 8 6 3 1 4:8:1 5 2 3 5 1 7:27:6 6 10 5 3 5 2 7:11:2 3 4 2
2. In fact, the set of minimal high utility itemsets of "DB_utility.txt" must consist of three sets as follows: itemsets utility {2, 4} 30 {2 5} 31 {1 5 3} 31
3. Therefore, The result of the example on the webpage at http://www.philippe-fournier-viger.com/spmf/MinFHM.php and the result of minFHM in SPMF open-source data mining library are incorrect. We modified the following segment of code to correct the minFHM: private void minfhm(...) { ... //If the itemset pXY passes the LA-Prune strategy. if(pXY != null) { // If pX is a high utility itemset. // we save the itemset: pX int[] itemset = ArraysAlgos...
if(pXY.sumIutils >= minUtility && ...){ register... }else if (!isSubsumingAFoundItemset(itemset)){ // is corrected exULs.add(pXY); } } .. }
Yes, I think you are right. There seems to be a bug in the implementation. Thanks for reporting it. I should release a new version of SPMF in about 1 week and half because I will have a week of holiday. I will then fix the bug, and also add several new algorithms related to high utility itemset mining that some people have sent to me recently.
By the way, I will also add your name to the list of contributors for reporting and fixing the bug!