public static double calculateRSquare(List<Double> actualList, List<Double> predictedList) {
Double[] actual = actualList.toArray(new Double[actualList.size()]);
Double[] predicted = predictedList.toArray(new Double[predictedList.size()]);
double mean = calculateMean(actual);
double sst = 0.0; // 总平方和
double ssr = 0.0; // 回归平方和
double sse = 0.0; // 残差平方和
for (int i = 0; i < actual.length; i++) {
double difference = actual[i] - mean;
double residual = actual[i] - predicted[i];
ssr += Math.pow(difference, 2);
sse += Math.pow(residual, 2);
sst = ssr + sse;
}
double rSquare = 1 - sse / sst; // R方决定系数
return rSquare;
}
private static double calculateMean(Double[] values) {
double sum = 0.0;
for (double value : values) {
sum += value;
}
return sum / values.length;
}
java 实现 r平方决定系数
最新推荐文章于 2024-10-11 17:30:36 发布