feat : add accuracy calculation

This commit is contained in:
GuillaumeSD
2024-02-28 23:29:30 +01:00
parent 43017c89ee
commit a8da159870
8 changed files with 283 additions and 677 deletions

View File

@@ -5,3 +5,37 @@ export const getPaddedMonth = (month: number) => {
export const capitalize = (s: string) => {
return s.charAt(0).toUpperCase() + s.slice(1);
};
export const ceilsNumber = (number: number, min: number, max: number) => {
if (number > max) return max;
if (number < min) return min;
return number;
};
export const getHarmonicMean = (array: number[]) => {
const sum = array.reduce((acc, curr) => acc + 1 / curr, 0);
return array.length / sum;
};
export const getStandardDeviation = (array: number[]) => {
const n = array.length;
const mean = array.reduce((a, b) => a + b) / n;
return Math.sqrt(
array.map((x) => Math.pow(x - mean, 2)).reduce((a, b) => a + b) / n
);
};
export const getWeightedMean = (array: number[], weights: number[]) => {
if (array.length > weights.length)
throw new Error("Weights array is too short");
const weightedSum = array.reduce(
(acc, curr, index) => acc + curr * weights[index],
0
);
const weightSum = weights
.slice(0, array.length)
.reduce((acc, curr) => acc + curr, 0);
return weightedSum / weightSum;
};