计算两组数据的斜率、截距和R^2
double[] x = { 2, 4, 5, 7, 8, 10 }; // 第一组数据
double[] y = { 5, 7, 9, 11, 13, 15 }; // 第二组数据
double sum_x = 0, sum_y = 0, sum_xy = 0, sum_xx = 0;
for (int i = 0; i < x.Length; i++)
{
sum_x += x[i];
sum_y += y[i];
sum_xy += x[i] * y[i];
sum_xx += x[i] * x[i];
}
double slope = (x.Length * sum_xy - sum_x * sum_y) / (x.Length * sum_xx - sum_x * sum_x);
double intercept = (sum_y - slope * sum_x) / x.Length;
// 计算R-squared
double y_mean = sum_y / y.Length;
double ss_tot = 0, ss_res = 0;
for (int i = 0; i < x.Length; i++)
{
double y_pred = slope * x[i] + intercept;
ss_tot += (y[i] - y_mean) * (y[i] - y_mean);
ss_res += (y[i] - y_pred) * (y[i] - y_pred);
}
double r_squared = 1 - ss_res / ss_tot;
Console.WriteLine("斜率: " + slope);
Console.WriteLine("截距: " + intercept);
Console.WriteLine("R-squared: " + r_squared);
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)