Skip to content

Commit

Permalink
Add generated code samples for JavaScript. Add JavaScript to the list…
Browse files Browse the repository at this point in the history
… of supported languages in the README
  • Loading branch information
yari-the-student committed Sep 23, 2019
1 parent d3a4760 commit 447a7de
Show file tree
Hide file tree
Showing 16 changed files with 431 additions and 3 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[![Coverage Status](https://coveralls.io/repos/github/BayesWitnesses/m2cgen/badge.svg?branch=master)](https://coveralls.io/github/BayesWitnesses/m2cgen?branch=master)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**m2cgen** (Model 2 Code Generator) - is a lightweight library which provides an easy way to transpile trained statistical models into a native code (Python, C, Java, Go).
**m2cgen** (Model 2 Code Generator) - is a lightweight library which provides an easy way to transpile trained statistical models into a native code (Python, C, Java, Go, JavaScript).

* [Installation](#installation)
* [Supported Languages](#supported-languages)
Expand All @@ -27,6 +27,7 @@ pip install m2cgen
- Java
- C
- Go
- JavaScript

## Supported Models

Expand Down
21 changes: 21 additions & 0 deletions generated_code_examples/javascript/classification/decision_tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
function score(input) {
var var0;
if ((input[2]) <= (2.6)) {
var0 = [1.0, 0.0, 0.0];
} else {
if ((input[2]) <= (4.8500004)) {
if ((input[3]) <= (1.6500001)) {
var0 = [0.0, 1.0, 0.0];
} else {
var0 = [0.0, 0.3333333333333333, 0.6666666666666666];
}
} else {
if ((input[3]) <= (1.75)) {
var0 = [0.0, 0.42857142857142855, 0.5714285714285714];
} else {
var0 = [0.0, 0.0, 1.0];
}
}
}
return var0;
}
79 changes: 79 additions & 0 deletions generated_code_examples/javascript/classification/lightgbm.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
function score(input) {
var var0;
if ((input[2]) > (1.8)) {
if ((input[2]) > (4.250000000000001)) {
var0 = -1.1736122903444903;
} else {
var0 = -1.1633850173886202;
}
} else {
var0 = -0.9486122853153485;
}
var var1;
if ((input[2]) > (1.8)) {
if ((input[1]) > (3.0500000000000003)) {
var1 = -0.06193194743580539;
} else {
var1 = -0.07237070828653688;
}
} else {
var1 = 0.12984943093573026;
}
var var2;
var2 = Math.exp(((0) + (var0)) + (var1));
var var3;
if ((input[2]) > (1.8)) {
if ((input[2]) > (4.8500000000000005)) {
var3 = -1.1807342692411888;
} else {
var3 = -0.9831932134295853;
}
} else {
var3 = -1.1952609652674462;
}
var var4;
if ((input[2]) > (1.8)) {
if ((input[2]) > (4.8500000000000005)) {
var4 = -0.05694282927518771;
} else {
var4 = 0.11960489254350348;
}
} else {
var4 = -0.07151978915296087;
}
var var5;
var5 = Math.exp(((0) + (var3)) + (var4));
var var6;
if ((input[2]) > (4.8500000000000005)) {
if ((input[3]) > (1.9500000000000002)) {
var6 = -0.9298942558407184;
} else {
var6 = -0.9632815288936335;
}
} else {
if ((input[2]) > (4.250000000000001)) {
var6 = -1.1322413652523249;
} else {
var6 = -1.1524760761934856;
}
}
var var7;
if ((input[2]) > (4.8500000000000005)) {
if ((input[3]) > (1.9500000000000002)) {
var7 = 0.12809276954555665;
} else {
var7 = 0.09898817876916756;
}
} else {
if ((input[2]) > (4.250000000000001)) {
var7 = -0.052710589717642864;
} else {
var7 = -0.07292857712854424;
}
}
var var8;
var8 = Math.exp(((0) + (var6)) + (var7));
var var9;
var9 = ((var2) + (var5)) + (var8);
return [(var2) / (var9), (var5) / (var9), (var8) / (var9)];
}
3 changes: 3 additions & 0 deletions generated_code_examples/javascript/classification/linear.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

53 changes: 53 additions & 0 deletions generated_code_examples/javascript/classification/random_forest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
function score(input) {
var var0;
if ((input[3]) <= (0.8)) {
var0 = [1.0, 0.0, 0.0];
} else {
if ((input[2]) <= (4.8500004)) {
var0 = [0.0, 0.9795918367346939, 0.02040816326530612];
} else {
if ((input[3]) <= (1.75)) {
if ((input[3]) <= (1.6500001)) {
var0 = [0.0, 0.25, 0.75];
} else {
var0 = [0.0, 1.0, 0.0];
}
} else {
var0 = [0.0, 0.0, 1.0];
}
}
}
var var1;
if ((input[3]) <= (0.8)) {
var1 = [1.0, 0.0, 0.0];
} else {
if ((input[0]) <= (6.05)) {
if ((input[2]) <= (4.9)) {
var1 = [0.0, 0.9032258064516129, 0.0967741935483871];
} else {
var1 = [0.0, 0.0, 1.0];
}
} else {
if ((input[3]) <= (1.75)) {
var1 = [0.0, 0.8, 0.2];
} else {
var1 = [0.0, 0.0, 1.0];
}
}
}
return addVectors(mulVectorNumber(var0, 0.5), mulVectorNumber(var1, 0.5));
}
function addVectors(v1, v2) {
let result = new Array(v1.length);
for (let i = 0; i < v1.length; i++) {
result[i] = v1[i] + v2[i];
}
return result;
}
function mulVectorNumber(v1, num) {
let result = new Array(v1.length);
for (let i = 0; i < v1.length; i++) {
result[i] = v1[i] * num;
}
return result;
}
69 changes: 69 additions & 0 deletions generated_code_examples/javascript/classification/svm.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

71 changes: 71 additions & 0 deletions generated_code_examples/javascript/classification/xgboost.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
function score(input) {
var var0;
if ((input[2]) >= (2.5999999)) {
var0 = -0.0731707439;
} else {
var0 = 0.142857149;
}
var var1;
if ((input[2]) >= (2.5999999)) {
var1 = -0.0705206916;
} else {
var1 = 0.12477719;
}
var var2;
var2 = Math.exp(((0.5) + (var0)) + (var1));
var var3;
if ((input[2]) >= (2.5999999)) {
if ((input[2]) >= (4.85000038)) {
var3 = -0.0578680299;
} else {
var3 = 0.132596686;
}
} else {
var3 = -0.0714285821;
}
var var4;
if ((input[2]) >= (2.5999999)) {
if ((input[2]) >= (4.85000038)) {
var4 = -0.0552999191;
} else {
var4 = 0.116139404;
}
} else {
var4 = -0.0687687024;
}
var var5;
var5 = Math.exp(((0.5) + (var3)) + (var4));
var var6;
if ((input[2]) >= (4.85000038)) {
if ((input[3]) >= (1.75)) {
var6 = 0.142011836;
} else {
var6 = 0.0405405387;
}
} else {
if ((input[3]) >= (1.6500001)) {
var6 = 0.0428571403;
} else {
var6 = -0.0730659068;
}
}
var var7;
if ((input[2]) >= (4.85000038)) {
if ((input[3]) >= (1.75)) {
var7 = 0.124653712;
} else {
var7 = 0.035562478;
}
} else {
if ((input[3]) >= (1.6500001)) {
var7 = 0.0425687581;
} else {
var7 = -0.0704230517;
}
}
var var8;
var8 = Math.exp(((0.5) + (var6)) + (var7));
var var9;
var9 = ((var2) + (var5)) + (var8);
return [(var2) / (var9), (var5) / (var9), (var8) / (var9)];
}
21 changes: 21 additions & 0 deletions generated_code_examples/javascript/regression/decision_tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
function score(input) {
var var0;
if ((input[5]) <= (6.941)) {
if ((input[12]) <= (14.395)) {
if ((input[7]) <= (1.43365)) {
var0 = 45.58;
} else {
var0 = 22.865022421524642;
}
} else {
var0 = 14.924358974358983;
}
} else {
if ((input[5]) <= (7.4370003)) {
var0 = 32.09534883720931;
} else {
var0 = 45.275;
}
}
return var0;
}
31 changes: 31 additions & 0 deletions generated_code_examples/javascript/regression/lightgbm.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
function score(input) {
var var0;
if ((input[5]) > (6.8455)) {
if ((input[5]) > (7.437)) {
var0 = 24.906664851995615;
} else {
var0 = 23.513674700555555;
}
} else {
if ((input[12]) > (14.395000000000001)) {
var0 = 21.863487452747595;
} else {
var0 = 22.70305627629392;
}
}
var var1;
if ((input[12]) > (9.63)) {
if ((input[12]) > (19.830000000000002)) {
var1 = -0.9644646678713786;
} else {
var1 = -0.30629733662250097;
}
} else {
if ((input[5]) > (7.437)) {
var1 = 2.0368334157126293;
} else {
var1 = 0.4576204330349962;
}
}
return ((0) + (var0)) + (var1);
}
3 changes: 3 additions & 0 deletions generated_code_examples/javascript/regression/linear.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 447a7de

Please sign in to comment.