Multi Variable Regression with Tensor Flow
Overview
Multiple linear regression is very similary to
single variable regression,
the only signficant difference is the shape of the inputs.
Example with Multiple Variables
The following demonstrates running a 2 variable regression, using hard coded data.
await $src('https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js');
let linearModel = tf.sequential();
linearModel.add(tf.layers.dense({units:1, inputShape:[2]}));
linearModel.compile({loss:'meanSquaredError',optimizer:'sgd'});
let xs = tf.tensor([[3.2,1],[4.4,1],[5.5,2],[6.71,0.8],[7.168,1.2],[9.779,5],[6.182,5],[7.59,4.5],[2.16,7]]);
let ys = tf.tensor([[1.6],[2.7],[2.9],[3.19],[1.684],[2.53],[3.366],[2.596],[2.53]]);
await linearModel.fit(xs,ys,{
epochs:80
});
let output = linearModel.predict(tf.tensor([4,6]));
prediction = Array.from(output.dataSync())[0];
Try it!
No Intercept
In order to specify that the model not use a bias (or intercept term), you specify the property
useBias as false in the model.add method.
await $src('https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js');
var linearModel = tf.sequential();
linearModel.add(tf.layers.dense({units:1, inputShape:[2], useBias: false}));