node-fpgrowth

FPGrowth frequent itemset mining algorithm implementation in TypeScript / JavaScript.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
node-fpgrowth
1.2.16 years ago6 years agoMinified + gzip package size for node-fpgrowth in KB

Readme

Node-FPGrowth
FPGrowth Algorithm frequent itemset mining algorithm implementation in TypeScript / JavaScript.

Getting Started

Installing

This is a Node.js module available through the npm registry.
Installation is done using the npm install command:
npm install --save node-fpgrowth

Example of use

In your TypeScript project, import and use FPGrowth as follows. Same example with a JavaScript syntax is available here.
import { FPGrowth, Itemset } from 'node-fpgrowth';

let transactions: number[][] = [
    [1,3,4],
    [2,3,5],
    [1,2,3,5],
    [2,5],
    [1,2,3,5]
];

// Execute FPGrowth with a minimum support of 40%. Algorithm is generic.
let fpgrowth: FPGrowth<number> = new FPGrowth<number>(.4);

// Returns itemsets 'as soon as possible' through events.
fpgrowth.on('data', (itemset: Itemset<number>) => {
    // Do something with the frequent itemset.
    let support: number = itemset.support;
    let items: number[] = itemset.items;
});

// Execute FPGrowth on a given set of transactions.
fpgrowth.exec(transactions)
    .then( (itemsets: Itemset<number>[]) => {
      // Returns an array representing the frequent itemsets.
    });

Node-FPGrowth is compatible with browserify and webpack. Alternatively, you can import/serve the browserified fpgrowth-client.js file found in the dist folder:
<script src="./dist/fpgrowth-client.js"></script>
<script>
  var transactions = [
      [1, 3, 4],
      [2, 3, 5],
      [1, 2, 3, 5],
      [2, 5],
      [1, 2, 3, 5]
  ];

  var fpg = new fpgrowth.FPGrowth(.4);

  fpg.exec(transactions, function (itemsets) {
      console.log(`Finished executing FPGrowth. ${itemsets.length} frequent itemset(s) were found.`);
  });
</script>

Building from source

  • Clone this repository:
```bash git clone https://github.com/alexisfacques/Node-FPGrowth.git cd Node-FPGrowth ```
  • Install the project's dependencies with:
```bash npm install ```
  • Compile the module's sources to executable JavaScript:
```bash npm run tsc ```
  • This should run the example bundled with the module:
```bash npm test `` - This should recreate a browserified version, ./dist/fpgrowth-client.js`, of the module: ```bash npm run browserify ```

License

This project is licensed under the MIT License - see the LICENSE file for details.