From 7a2ce4b914e057d3827adec74a6cf59024b2f7d9 Mon Sep 17 00:00:00 2001 From: RealPeha Date: Mon, 5 Oct 2020 14:48:26 +0300 Subject: [PATCH 1/2] Added Mean Square Error --- Maths/MeanSquareError.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Maths/MeanSquareError.js diff --git a/Maths/MeanSquareError.js b/Maths/MeanSquareError.js new file mode 100644 index 0000000000..1f45ebabfe --- /dev/null +++ b/Maths/MeanSquareError.js @@ -0,0 +1,23 @@ +// Wikipedia: https://en.wikipedia.org/wiki/Mean_squared_error + +function mse (predicted, expected) { + if (!Array.isArray(predicted) || !Array.isArray(expected)) { + throw new TypeError('Argument must be an Array') + } + + if (predicted.length !== expected.length) { + throw new TypeError('The two lists must be of equal length') + } + + let err = 0 + + for (let i = 0; i < expected.length; i++) { + err += (expected[i] - predicted[i]) ** 2 + } + + return err / expected.length +} + +console.log(mse([1, 2, 3, 4], [1, 2, 3, 4]) === 0) +console.log(mse([4, 3, 2, 1], [1, 2, 3, 4]) === 5) +console.log(mse([2, 0, 2, 0], [0, 0, 0, 0]) === 2) From 1f74b1fa6e14a34a9c9c34ea19917649d3fac099 Mon Sep 17 00:00:00 2001 From: vinayak Date: Mon, 5 Oct 2020 23:48:00 +0530 Subject: [PATCH 2/2] Update MeanSquareError.js --- Maths/MeanSquareError.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Maths/MeanSquareError.js b/Maths/MeanSquareError.js index 1f45ebabfe..de9dcfd7f0 100644 --- a/Maths/MeanSquareError.js +++ b/Maths/MeanSquareError.js @@ -1,6 +1,6 @@ // Wikipedia: https://en.wikipedia.org/wiki/Mean_squared_error -function mse (predicted, expected) { +const meanSquaredError = (predicted, expected) => { if (!Array.isArray(predicted) || !Array.isArray(expected)) { throw new TypeError('Argument must be an Array') } @@ -18,6 +18,9 @@ function mse (predicted, expected) { return err / expected.length } -console.log(mse([1, 2, 3, 4], [1, 2, 3, 4]) === 0) -console.log(mse([4, 3, 2, 1], [1, 2, 3, 4]) === 5) -console.log(mse([2, 0, 2, 0], [0, 0, 0, 0]) === 2) +// testing +(() => { + console.log(meanSquaredError([1, 2, 3, 4], [1, 2, 3, 4]) === 0) + console.log(meanSquaredError([4, 3, 2, 1], [1, 2, 3, 4]) === 5) + console.log(meanSquaredError([2, 0, 2, 0], [0, 0, 0, 0]) === 3) +})()