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 传入需要预测的数据集

返回:预测的数据集

例子


 


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用户呢,现在只买了辣条,问他可能还会买什么?
通过这个算法,设置 支持度以及自信度 就可以推断出他是否会买其他东西。从而 可以响应推荐。

这种类似的学习算法,数据量越大,准确性越高。

你可能感兴趣的:(算法,php,神经网络)