public function __construct($data) { //Transactions Array passed if (isset($data["transactions"])) { $transactions = $data["transactions"]; } //Text file Passed if (isset($data["file"])) { self::$stopwords = self::get_stopwords(); $transactions = self::parse_file($data["file"]); } //Transactions are Empty if (empty($transactions)) { echo "Transactions are Empty, what are you going to do about it?"; exit; } //Set Transactions self::$transactions = $transactions; //Set Amount of Transactions self::$total_transactions = count($transactions); //Remove duplicates from Transactions self::$transactions = self::remove_duplicates(self::$transactions); //Find concepts from Transactions self::$concepts = self::find_concepts(self::$transactions); //Find combinations from Concepts self::$combinations = self::find_combinations(self::$concepts); //Find support for Combinations self::$combinations = self::find_support(self::$combinations, self::$transactions); //Find confidence for Concepts self::$combinations = self::find_confidence(self::$combinations, self::$transactions); }
public function index() { $minSupp = 50; //minimal support $minConf = 90; //minimal confidence $type = Apriori::SRC_PLAIN; //data type $recomFor = 'beer'; //recommendation for $dataFile = 'data.json.gz'; //file for saving of state //transactions $file = fopen(public_path('db/1000.inp.txt'), 'r'); $data = []; while (!feof($file)) { $line = fgets($file); if ($line) { $db = explode(' ', $line); if ($db) { $data[] = implode(',', $db); } } } // $data = array( // 'bread, milk', // 'sugar, milk, beer', // 'bread', // 'bread, milk, beer', // 'sugar, milk, beer' // ); //id(items) try { $start = microtime(true); $apri = new Apriori($type, $data, $minSupp, $minConf); $apri->solve()->generateRules()->displayRules(); //save state with rules $time_elapsed_secs = microtime(true) - $start; echo 'Time: ' . $time_elapsed_secs; } catch (Exception $exc) { echo $exc->getMessage(); } return View::make('home.index'); }
<!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Apriori Alghoritm</title> </head> <body style="font-family: monospace;"> <pre> <?php include 'Apriori.php'; $Apriori = new Apriori(); $Apriori->setMaxScan(3); $Apriori->setMinSup(2); $Apriori->setMinConf(100); $Apriori->setDelimiter(','); $Apriori->process('fichier.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()); //Sauvegarde dans les fichiers $Apriori->saveFreqItemsets('freqItemsets.txt'); $Apriori->saveAssociationRules('associationRules.txt'); ?> </pre>
} } } function get_salary_range($salary) { if ($salary < 30000) { return 'salary- <30k$ '; } else { if ($salary > 30000 and $salary < 60000) { return 'salary-between 30k$ and 60k$'; } else { return 'salary-more than 60$k'; } } } $Apriori = new Apriori(); $Apriori->setMaxScan(20); //Scan 2, 3, ... $Apriori->setMinSup(2); //Minimum support 1, 2, 3, ... $Apriori->setMinConf(30); //Minimum confidence - Percent 1, 2, ..., 100 $Apriori->setDelimiter(','); //Delimiter $dataset = array(); $conn = mysql_connect('localhost', 'root', ''); if ($conn) { if (mysql_select_db('olx', $conn)) { $result = mysql_query("SELECT age,gender,salary,pid FROM user,cart,products WHERE pid=id and user_id=uid", $conn); if (!mysql_num_rows($result)) { $err = 'No product available';
} if (count($set) != 0) { array_push($dataset, $set); } } if (isset($_POST['submitParameters'])) { $Apriori = new Apriori(); $Apriori->setMaxScan($_POST['maximumScan']); //Scan 2, 3, ... $Apriori->setMinSup($_POST['minimumSupport']); //Minimum support 1, 2, 3, ... $Apriori->setDelimiter(','); //Delimiter $Apriori->process($dataset); } else { $Apriori = new Apriori(); //default values $Apriori->setMaxScan(100); //Scan 2, 3, ... $Apriori->setMinSup(3); //Minimum support 1, 2, 3, ... $Apriori->setMinConf(75); //Minimum confidence - Percent 1, 2, ..., 100 $Apriori->setDelimiter(','); //Delimiter $Apriori->process($dataset); } ?> <pre> <?php // print_r($dataset);