From c02fc1f6f6cf7d265804d97753345acf9ad60749 Mon Sep 17 00:00:00 2001 From: Stas Date: Mon, 5 Oct 2020 21:18:59 +0300 Subject: [PATCH] Added Mean Square Error (#417) * Added Mean Square Error * Update MeanSquareError.js Co-authored-by: vinayak --- Maths/MeanSquareError.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Maths/MeanSquareError.js diff --git a/Maths/MeanSquareError.js b/Maths/MeanSquareError.js new file mode 100644 index 000000000..de9dcfd7f --- /dev/null +++ b/Maths/MeanSquareError.js @@ -0,0 +1,26 @@ +// Wikipedia: https://en.wikipedia.org/wiki/Mean_squared_error + +const meanSquaredError = (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 +} + +// 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) +})()