ml-random-forest
Version:
Random forest for classification and regression
105 lines (83 loc) • 2.56 kB
Markdown
//en.wikipedia.org/wiki/Random_forest).
`npm i ml-random-forest`
```js
import IrisDataset from 'ml-dataset-iris';
import { RandomForestClassifier as RFClassifier } from 'ml-random-forest';
const trainingSet = IrisDataset.getNumbers();
const predictions = IrisDataset.getClasses().map((elem) =>
IrisDataset.getDistinctClasses().indexOf(elem)
);
const options = {
seed: 3,
maxFeatures: 0.8,
replacement: true,
nEstimators: 25
};
const classifier = new RFClassifier(options);
classifier.train(trainingSet, predictions);
const result = classifier.predict(trainingSet);
const oobResult = classifier.predictOOB();
const confusionMatrix = classifier.getConfusionMatrix();
```
```js
import { RandomForestRegression as RFRegression } from 'ml-random-forest';
const dataset = [
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ]
];
const trainingSet = new Array(dataset.length);
const predictions = new Array(dataset.length);
for (let i = 0; i < dataset.length; ++i) {
trainingSet[i] = dataset[i].slice(0, 3);
predictions[i] = dataset[i][3];
}
const options = {
seed: 3,
maxFeatures: 2,
replacement: false,
nEstimators: 200
};
const regression = new RFRegression(options);
regression.train(trainingSet, predictions);
const result = regression.predict(trainingSet);
```
[ ](./LICENSE)
[ ]: https://img.shields.io/npm/v/ml-random-forest.svg
[ ]: https://npmjs.org/package/ml-random-forest
[ ]: https://github.com/mljs/random-forest/workflows/Node.js%20CI/badge.svg?branch=master
[ ]: https://github.com/mljs/random-forest/actions?query=workflow%3A%22Node.js+CI%22
[ ]: https://img.shields.io/npm/dm/ml-random-forest.svg
[ ]: https://npmjs.org/package/ml-random-forest
[![NPM version][npm-image]][npm-url]
[![build status][ci-image]][ci-url]
[![npm download][download-image]][download-url]
[ ](https: