enzomc / php-fpgrowth
此包最新版本(1.1)没有提供许可证信息。
频繁模式增长算法的PHP实现
1.1
2022-10-01 17:00 UTC
Requires
- php: >=7.4
- drupol/phpermutations: ^1.4
This package is auto-updated.
Last update: 2024-09-29 05:09:29 UTC
README
频繁模式增长算法的PHP实现
入门指南
您可以使用composer安装此包
composer require enzomc/php-fpgrowth
用法
运行算法
use EnzoMC\PhpFPGrowth\FPGrowth;
$support = 3;
$confidence = 0.7;
$fpgrowth = new FPGrowth($support, $confidence);
$transactions = [
['M', 'O', 'N', 'K', 'E', 'Y'],
['D', 'O', 'N', 'K', 'E', 'Y'],
['M', 'A', 'K', 'E'],
['M', 'U', 'C', 'K', 'Y'],
['C', 'O', 'O', 'K', 'I', 'E']
];
$fpgrowth->run($transactions);
$patterns = $fpgrowth->getPatterns();
$rules = $fpgrowth->getRules();
返回结果
模式以数组数组的形式返回,例如
[
['ITEM_1,ITEM_2' => 3],
['ITEM_3' => 5],
...
]
其中键是项目集,值是该项目集的支持度
规则以数组数组的形式返回,例如
[
['ITEM_1,ITEM_2', 'ITEM_3', 0.7],
['ITEM_4','ITEM_5', 0.7],
...
]
其中第一个值是规则左侧路径,第二个值是规则右侧路径,第三个值是规则的置信度
包含示例交易的输出结果
var_dump($patterns);
array(10) {
["M"]=>
int(3)
["K,M"]=>
int(3)
["Y"]=>
int(3)
["K,Y"]=>
int(3)
["E,O"]=>
int(4)
["E,K"]=>
int(4)
["E,K,O"]=>
int(4)
["O"]=>
int(4)
["K,O"]=>
int(4)
["K"]=>
int(5)
}
var_dump($rules);
array(11) {
[0]=>
array(3) {
[0]=>
string(1) "M"
[1]=>
string(1) "K"
[2]=>
float(1)
}
[1]=>
array(3) {
[0]=>
string(1) "Y"
[1]=>
string(1) "K"
[2]=>
float(1)
}
[2]=>
array(3) {
[0]=>
string(1) "O"
[1]=>
string(1) "E"
[2]=>
float(1)
}
[3]=>
array(3) {
[0]=>
string(1) "K"
[1]=>
string(1) "E"
[2]=>
float(0.8)
}
[4]=>
array(3) {
[0]=>
string(1) "K"
[1]=>
string(3) "E,O"
[2]=>
float(0.8)
}
[5]=>
array(3) {
[0]=>
string(1) "O"
[1]=>
string(3) "E,K"
[2]=>
float(1)
}
[6]=>
array(3) {
[0]=>
string(3) "E,K"
[1]=>
string(1) "O"
[2]=>
float(1)
}
[7]=>
array(3) {
[0]=>
string(3) "E,O"
[1]=>
string(1) "K"
[2]=>
float(1)
}
[8]=>
array(3) {
[0]=>
string(3) "K,O"
[1]=>
string(1) "E"
[2]=>
float(1)
}
[9]=>
array(3) {
[0]=>
string(1) "K"
[1]=>
string(1) "O"
[2]=>
float(0.8)
}
[10]=>
array(3) {
[0]=>
string(1) "O"
[1]=>
string(1) "K"
[2]=>
float(1)
}
}