Algorithms and utils for Machine Learning in JavaScript.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.vscode
assets
docs
src 优化模块机制 Jun 21, 2018
test/utils
.gitattributes
.gitignore
.npmignore update ignore files Dec 7, 2017
.travis.yml travis CI Nov 23, 2017
LICENSE
README.md
gulpfile.js
package-lock.json
package.json
tsconfig.json
tslint.json Restructure with typescript Oct 21, 2017

README.md

mlhelper

npm npm

Algorithms and utils for Machine Learning in JavaScript based on Node.js. while implementing commonly used machine learning algorithms, This library attempts to provide more abundant ecology, such as matrix and vector operations, file parsing, feature engineering, data visualization, and so on.

QQ Group: 485305514

Installation

$ npm install mlhelper

Documention

Example

Algorithm

const AdaBoost = require('mlhelper/lib/algorithm').AdaBoost;
//or const AdaBoost = require('mlhelper').algorithm.AdaBoost;

const dataSet = [
    [1.0,2.1],
    [2.0,1.1],
    [1.3,1.0],
    [1.0,1.0],
    [2.0,1.0]
]
const labels = [1.0,1.0,-1.0,-1.0,1.0];
let ada = new AdaBoost(dataSet,labels,40);
let result = ada.classify([[1.0,2.1],
    [2.0,1.1],
    [1.3,1.0],
    [1.0,1.0],
    [2.0,1.0]]);
console.log(result); // [ 1, 1, -1, -1, -1 ]

Utils

Matrix:

const Matrix = require('mlhelper/lib/utils').Matrix;

let m1 = new Matrix([
    [1,2,3],
    [3,4,5]
]);

let m2 = new Matrix([
    [2,2,6],
    [3,1,5]
]);

console.log(m2.sub(m1)) // Matrix { arr: [ [ 1, 0, 3 ], [ 0, -3, 0 ] ] }
console.log(m1.mult(m2)) // Matrix { arr: [ [ 2, 4, 18 ], [ 9, 4, 25 ] ] }

Vector:

const Vector = require('mlhelper/lib/utils').Vector;

let v = new Vector([5,10,7,1]);
console.log(v.argSort()) // [ 3, 0, 2, 1 ]

fileParser:

const parser = require('mlhelper/lib/utils').fileParser;

let dt = parser.read_csv(path.join(__dirname,'./train.csv'),{
    index_col: 0,
    delimiter: ',',
    header: 0,
    dataType: 'number'
});
let labels = dt.getClasses();
let dataSet =dt.drop('quality').values;

Feature Engineering

// preprocessing features
const preprocessing = require('mlhelper/lib/utils').features.preprocessing;

// make the features obey the standard normal distribution(Standardization)
let testStandardScaler = preprocessing.standardScaler(dataSet);

let testNormalize = preprocessing.normalize(dataSet);

let testBinarizer = preprocessing.binarizer(dataSet);

// ...

graph tools:

Decision Tree:

charts.drawDT(dt.getTree(),{
    width:600,
    height:400
});

http://7xsi10.com1.z0.glb.clouddn.com/DT.png

logistic regression

charts.drawLogistic(dataSet,labels,weights);

Contribute

The original purpose of this project is to learn, and now I need more people to participate in this project, and any issue and good advice is welcome.

git clone

git clone https://github.com/laoqiren/mlhelper.git

install dependencies&&devdependecies

npm install

development

npm run dev

test

npm run test

build

npm run build

LICENSE

MIT.

You can use the project for any purpose, except for illegal activities.