Skip to content

santifoo/regression-polynomial

 
 

Repository files navigation

regression-polynomial

NPM version npm download build status Test coverage

Polynomial Regression.

Installation

$ npm i ml-regression-polynomial

Usage

import { PolynomialRegression } from 'ml-regression-polynomial';

const x = [50, 50, 50, 70, 70, 70, 80, 80, 80, 90, 90, 90, 100, 100, 100];
const y = [
  3.3, 2.8, 2.9, 2.3, 2.6, 2.1, 2.5, 2.9, 2.4, 3.0, 3.1, 2.8, 3.3, 3.5, 3.0,
];
const degree = 5; // setup the maximum degree of the polynomial

const regression = new PolynomialRegression(x, y, degree);

console.log(regression.predict(80)); // Apply the model to some x value. Prints 2.6.
console.log(regression.coefficients); // Prints the coefficients in increasing order of power (from 0 to degree).
console.log(regression.toString(3)); // Prints a human-readable version of the function.
console.log(regression.toLaTeX());
console.log(regression.score(x, y));

Options

An interceptAtZero option is available, to force $f(0) = 0$. Also, a "powers array" can be specified.

  • Using interceptAtZero
const regression = new PolynomialRegression(x, y, degree, {
  interceptAtZero: true,
});
  • Using the powers array
const powers = [0, 1, 2, 3, 4, 5];
const regression = new PolynomialRegression(x, y, powers);

powers could also be [1,2,3,4,5]or[1,3,5] and so on.

For intercepting at zero using an array, skip the zero in the array (the option interceptAtZero is ignored in this case.)

License

MIT

About

Polynomial Regression

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 94.9%
  • JavaScript 5.1%