PHP-ML/Apriori算法(数据挖掘算法1)
Apriori Associator
Apriori Associator 是基于Apriori Algorithm(关联规则)进行频繁项集挖掘的关联规则学习
Apriori类
类摘要
Apriori{
/* 属性 */
string Apriori::ARRAY_KEY_ANTECEDENT = 'antecedent';
string Apriori::ARRAY_KEY_CONFIDENCE = 'confidence';
string Apriori::ARRAY_KEY_CONSEQUENT = 'consequent';
string Apriori::ARRAY_KEY_SUPPORT = 'support';
/* 方法 */
void Apriori::__construct([float $support = 0.0,[float $confidence = 0.0]])
array getRules()
array apriori()
array predict(array $samples) //此函数为trait引入
void train(array $samples, array $targets) //此函数为trait引入
}
方法介绍
void Apriori::__construct([float $support = 0.0,[float $confidence = 0.0]])
参数
$support 支持度
$confidence 自信度
(如果不明白支持度和自信度的请看 Apriori Algorithm(关联规则) )
void train(array $samples, array $targets)
说明:为类传入样例数据集
$samples 数据集,样例数据
$targets 无用,传空
array apriori()
返回:频繁集
**array getRules() **
返回:项目集生成的关联规则。
array predict(array $samples)
$samples 传入需要预测的数据集
返回:预测的数据集
例子
<?php
use Phpml\Association\Apriori;
$associator = new Apriori(0.5, 0.5);
$sampleGreek = [
['alpha', 'beta', 'epsilon'],
['alpha', 'beta', 'theta'],
['alpha', 'beta', 'epsilon'],
['alpha', 'beta', 'theta'],
];
$associator->train($sampleGreek, []);
$associator->predict([['alpha', 'epsilon'], ['beta', 'theta']]);
/* array(2) {
[0]=>
array(1) {
[0]=>
array(1) {
[0]=>
string(4) "beta"
}
}
[1]=>
array(1) {
[0]=>
array(1) {
[0]=>
string(5) "alpha"
}
}
}
*/
$associator->getRules();
/*array(22) {
[0]=>
array(4) {
["antecedent"]=>
array(1) {
[0]=>
string(5) "alpha"
}
["consequent"]=>
array(1) {
[0]=>
string(4) "beta"
}
["support"]=>
float(1)
["confidence"]=>
float(1)
}
[1]=>
array(4) {
["antecedent"]=>
array(1) {
[0]=>
string(4) "beta"
}
["consequent"]=>
array(1) {
[0]=>
string(5) "alpha"
}
["support"]=>
float(1)
["confidence"]=>
float(1)
}.............etc
*/
$associator->apriori()
/*
array(4) {
[1]=>
array(4) {
[0]=>
array(1) {
[0]=>
string(5) "alpha"
}
[1]=>
array(1) {
[0]=>
string(4) "beta"
}
[2]=>
array(1) {
[0]=>
string(7) "epsilon"
}
[3]=>
array(1) {
[0]=>
string(5) "theta"
}
}
[2]=>
array(5) {
[0]=>
array(2) {
[0]=>
string(5) "alpha"
[1]=>
string(4) "beta"
}
[1]=>
array(2) {
[0]=>
string(5) "alpha"
[1]=>
string(7) "epsilon"
}
[2]=>
array(2) {
[0]=>
string(5) "alpha"
[1]=>
string(5) "theta"
}
[3]=>
array(2) {
[0]=>
string(4) "beta"
[1]=>
string(7) "epsilon"
}
[4]=>
array(2) {
[0]=>
string(4) "beta"
[1]=>
string(5) "theta"
}
}
.......etc
*/
##总结
这个类可以帮助我们,推测当一个用户有什么行为,我们可以推到出他下一个行为是什么,比如,在一个商城里面,A用户买了辣条,B用户买了辣条和餐巾纸,C用户买了辣条,餐巾纸,矿泉水
然后D用户呢,现在只买了辣条,问他可能还会买什么?
通过这个算法,设置 支持度以及自信度 就可以推断出他是否会买其他东西。从而 可以响应推荐。
这种类似的学习算法,数据量越大,准确性越高。

浙公网安备 33010602011771号