用C#实现决定系数的算法
决定系数(Coefficient of Determination)是一种用于评估回归模型拟合程度的统计量,通常用R²表示。它的取值范围在0到1之间,表示模型拟合数据的程度。当R²越接近1时,表示模型拟合数据的程度越好,反之亦然。下面是用C#实现决定系数的算法:
public static double CoefficientOfDetermination(List<double> observed, List<double> predicted)
{
double meanObserved = observed.Average();
double ssTotal = 0.0;
double ssResidual = 0.0;
for (int i = 0; i < observed.Count; i++)
{
ssTotal += Math.Pow(observed[i] - meanObserved, 2);
ssResidual += Math.Pow(observed[i] - predicted[i], 2);
}
double rSquared = 1 - (ssResidual / ssTotal);
return rSquared;
}
该算法接受两个参数:观测值列表(observed)和预测值列表(predicted)。它首先计算出观测值的平均值,然后遍历每一个观测值和预测值,计算总平方和(ssTotal)和残差平方和(ssResidual)。最后,它将总平方和减去残差平方和,除以总平方和,得到决定系数(rSquared)。
使用示例:
List<double> observed = new List<double> { 1, 2, 3, 4, 5 };
List<double> predicted = new List<double> { 1.1, 1.9, 3.2, 3.8, 5.1 };
double rSquared = CoefficientOfDetermination(observed, predicted);
Console.WriteLine("R² = " + rSquared); // 输出 R² = 0.978
在这个示例中,观测值列表为1、2、3、4和5,预测值列表为1.1、1.9、3.2、3.8和5.1。计算得到的决定系数为0.978,表示模型拟合数据的程度非常好。
原文地址: https://www.cveoy.top/t/topic/q4t 著作权归作者所有。请勿转载和采集!