javascript中的多元多项式回归?

mik*_*305 5 javascript polynomial-math linear-regression node.js scikit-learn

多元线性回归如何适应在 Javascript 中进行多元多项式回归?这意味着输入 X 是一个二维数组,预测 y 目标是一个一维数组。

python 方法是使用 sklearn.preprocessing.PolynomialFeatures,然后是线性回归:http ://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html

ml.js 库只做简单的多项式回归,即它只能接收一维输入和一维输出。https://github.com/mljs/regression-polynomial

这是 Python scikit-learn 中用于多元多项式回归的工作代码示例,其中 X 是二维数组,y 是一维向量。

这是示例代码:

const math = require('mathjs');
const PolynomialRegression = require('ml-regression-polynomial');

const a1 = math.random([10,2]);
const a2 = math.reshape(math.range(0, 20, 1), [10, 2]);
const x = math.add(a1, a2).valueOf();
const y = [];
for (i = 0; i<5; i++){ y.push(0); }
for (i = 5; i<10; i++){ y.push(1); }
const poly = new PolynomialRegression(x, y, 2);
console.log(poly.predict([[3,3],[4,4]]))
Run Code Online (Sandbox Code Playgroud)

产出

[ NaN, NaN ]
Run Code Online (Sandbox Code Playgroud)

小智 1

对于OP来说可能为时已晚,但也许我可以帮助其他人回答我的问题。当我必须在工作中开发数据科学相关的应用程序时,我遇到了同样的问题。由于没有用于多元多项式回归的库(在 javascript 中),我实现了自己的:

https://www.npmjs.com/package/@rainij/polynomial-regression-js

它不像 TensorFlow 这样的大型库那么受欢迎,但它经过了良好的测试,我现在的公司也使用它。它也得到积极维护,我计划在可预见的将来维护它。

该实现受到 scikit-learn 的启发。主类PolynomialRegressor实际上是通过另一个类来实现的PolynomialFeatures。但我没有直接使用线性回归库,而是依赖于另一个mljs提供奇异值分解的库。