我有这些桌子。在第一个表中,我有交易 ID 和在该交易中购买的产品。
TID Products
1 1,2,5
2 2,4
3 2,3
4 1,2,4
5 1,3
6 2,3
7 1,3
8 1,2,3,5
9 1,2,3
我想要对此数据执行的操作是计算“产品”列中项集出现的次数。例如,项集 {1,2} 在“产品”列中找到了 4 次,没有问题,但是 1,3 在“产品”列中只找到了 2 次,但正如在“产品”列中看到的那样,它出现了 4 次。
ItemSet Sup. count
1,2 4
1,3 2
1,4 0
1,5 0
2,3 4
2,4 2
2,5 1
3,4 0
3,5 1
4,5 0
这是我用来在 Sup 中查找匹配项的 php 代码。计数列。如果我让它找到项目集中的所有重合,当我到达两位数(例如 12 或更多)时,它会说它再次找到 1 和 2,这就是我放置边界的原因。所以我被困在这个地方。
$result_support = array_fill ( 0 , $count_itemsets , 0 );
$count_result_array = count($result_array);
for($i = 0; $i < $count_itemsets; $i++){
for($j = 0; $j < $count_result_array; $j++){
$string = $result_array[$j];
if (preg_match('~\\b' . $result_itemset[$i] . '\\b~i', $string, $m)) {
$result_support[$i] = $result_support[$i] + 1;
}
}
}