Skip to content

VTwo-Group/Apriori-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Apriori Algorithm

Implementation of the Apriori algorithm in PHP. Main Page

Usage

First step:

include 'class.apriori.php'; 
$Apriori = new Apriori();

Methods

setMaxScan(int), setMinSup(int), setMinConf(int), setDelimiter(string), getMinSup(void), getMinConf(void), getMaxScan(void), getDelimiter(void), process(string or array), printFreqItemsets(void), getFreqItemsets(void), printAssociationRules(void), getAssociationRules(void), saveFreqItemsets(string), saveAssociationRules(string)

Initialize

Initialize options:

$Apriori->setMaxScan(20);       //Scan 2, 3, ...
$Apriori->setMinSup(2);         //Minimum support 1, 2, 3, ...
$Apriori->setMinConf(75);       //Minimum confidence - Percent 1, 2, ..., 100
$Apriori->setDelimiter(',');    //Delimiter

dataset.txt

A, B, C, D 
A, D, C
B, C
A, E, C

Example

minSup = 2, minConf = 75(%)

Coding

<?php   
include 'class.apriori.php';
 
$Apriori = new Apriori();
 
$Apriori->setMaxScan(20);       //Scan 2, 3, ...
$Apriori->setMinSup(2);         //Minimum support 1, 2, 3, ...
$Apriori->setMinConf(75);       //Minimum confidence - Percent 1, 2, ..., 100
$Apriori->setDelimiter(',');    //Delimiter 
 
/*
Use Array:
$dataset   = array();
$dataset[] = array('A', 'B', 'C', 'D'); 
$dataset[] = array('A', 'D', 'C');  
$dataset[] = array('B', 'C'); 
$dataset[] = array('A', 'E', 'C'); 
$Apriori->process($dataset);
*/
$Apriori->process('dataset.txt');
 
//Frequent Itemsets
echo '<h1>Frequent Itemsets</h1>';
$Apriori->printFreqItemsets();
 
echo '<h3>Frequent Itemsets Array</h3>';
print_r($Apriori->getFreqItemsets()); 
 
//Association Rules
echo '<h1>Association Rules</h1>';
$Apriori->printAssociationRules();
 
echo '<h3>Association Rules Array</h3>';
print_r($Apriori->getAssociationRules()); 
 
//Save to file
$Apriori->saveFreqItemsets('freqItemsets.txt');
$Apriori->saveAssociationRules('associationRules.txt');
?>

Result

Frequent Itemsets

Time: 0 second(s)
===============================================================================
{B,C} = 2
{A,C,D} = 2

Frequent Itemsets Array

Array
(
    [0] => Array
        (
            [sup] => 2
            [0] => B
            [1] => C
        )

    [1] => Array
        (
            [sup] => 2
            [0] => A
            [1] => C
            [2] => D
        )

)

Association Rules

Time: 0 second(s)
===============================================================================
B => C = 100%
D => C = 100%
D => A = 100%
D => A,C = 100%
C => A = 75%
A => C = 100%
A,D => C = 100%
C,D => A = 100%

Association Rules Array

Array
(
    [B] => Array
        (
            [C] => 100
        )

    [D] => Array
        (
            [C] => 100
            [A] => 100
            [A,C] => 100
        )

    [C] => Array
        (
            [A] => 75
        )

    [A] => Array
        (
            [C] => 100
        )

    [A,D] => Array
        (
            [C] => 100
        )

    [C,D] => Array
        (
            [A] => 100
        )

)

About

Implementation of the apriori algorithm in PHP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages