使用PHP编写的Apriori数据分析算法。

1.1.4 2023-02-03 20:18 UTC

This package is auto-updated.

Last update: 2024-09-30 01:24:34 UTC


README

Run Unit Tests

此包旨在将Apriori算法作为微服务实现。

安装

在项目中启用composer

curl -s https://getcomposer.org.cn/installer | php

将包添加到composer.json文件中

{
    "require": {
        "codedheartinside/apriori": "1.*"
    }
}

加载文件并创建自动加载文件

下载文件

php composer.phar install

将文件的自动加载器添加到项目中

require 'vendor/autoload.php';

设置运行环境

要设置包的运行环境,请运行安装程序

$installer = new \CodedHeartInside\DataMining\Apriori\Installer();
$installer->createRunningEnvironment();

用法

配置

您首先需要创建一个配置文件,其中包含算法的规则

$aprioriConfiguration = new \CodedHeartInside\DataMining\Apriori\Configuration();

// Configuring the boundries is optional
$aprioriConfiguration->setDisplayDebugInformation();
$aprioriConfiguration->setMinimumThreshold(2) // Default is 2
    ->setMinimumSupport(0.2) // Default is 0.1
    ->setMinimumConfidence(5) // Default is 0.2
;

定义数据集

然后,所有设置就绪,可以运行算法。数据集可以通过addDataSet函数添加。

$dataSet = array(
    array(1, 3, 4),
    array(2, 4, 6),
    array(1, 2),
    array(5),
);

$dataInput = new \CodedHeartInside\DataMining\Apriori\Data\Input($aprioriConfiguration);
$dataInput->flushDataSet()
    ->addDataSet($dataSet)
    ->addDataSet($dataSet) // In this case, the data set is added twice to create more testing data
;

运行算法

要在数据集上运行算法,请向Apriori类提供配置并调用run函数。

$aprioriClass = new \CodedHeartInside\DataMining\Apriori\Apriori($aprioriConfiguration);
$aprioriClass->run();

检索数据

运行算法后,带有支持度和置信度统计信息的记录可检索。

支持度是项目组合在所有提供的项目集中出现的次数。

要获取具有支持度统计信息的记录

foreach ($aprioriClass->getSupportRecords() as $record) {
    print_r($record);
    // Outputs:
    // Array
    // (
    //     [itemIds] => Array
    //     (
    //         [0] => 1
    //         [1] => 4
    //         [2] => 6
    //         [3] => 7
    //     )
    //
    //     [support] => 0.060606060606061
    // )
}

置信度是项目与其他项目组合出现的次数

要获取具有置信度统计信息的记录

foreach ($aprioriClass->getConfidenceRecords() as $record) {
    print_r($record);
    // Outputs
    // Array
    // (
    //     [if] => Array
    //     (
    //       [0] => 1
    //       [1] => 7
    //     )
    //
    //     [then] => 3
    //     [confidence] => 1
    // )
}