Среднеквадратическое отклонение(RMSE)
получил тестовое задание на позицию джуна. Отводилось на него 20 мин. Я его не успел решить, и после поискав инфу, не могу придти к правильному решению.
Есть два массива predicated и observed (каждый имеет длину цепи N), нужно написать метод, который вычислит Среднеквадратическое отклонение(RMSE) значений. Для каждой J, значение predicated[J] отвечает значению observed[J]. Результат будет принят если абсолютная ошибка не более 10^-4
Дано:
predicated = [4, 25, 0.75, 11],
observed = [3, 21, -1.25, 13]
метод должен возвращать 2.5.
С учетом того что:
N это int в диапазоне [1...1000];
каждый элемент в predicated и observed это значения в диапазоне [-10^9...10^9.]
Я пробовал использовать формулу:
получил 1.5 upd: ошибку в расчете понял, получил 2.5.
Только все же же не понимаю к чему эти диапазоны цепей и значений. Что это меняет?
К примеру вот решение мое на Java:
public class Rmse {
double[] predicated = {4, 25, 0.75, 11};
double[] observed = {3, 21, -1.25, 13};
double sum;
double average;
double rmse;
double solution(double[] predicated, double[] observed) {
int n = predicated.length;
for (int i = 0; i < n; i++) {
sum += Math.pow((predicated[i] - observed[i]), 2);
}
average = sum / n;
rmse = Math.sqrt( average );
return rmse;
}
Какие условия стоит добавить тут?
