C++ 计算 拟合优度R^2

这篇具有很好参考价值的文章主要介绍了C++ 计算 拟合优度R^2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决的问题:

拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度,度量拟合优度的统计量是可决系数(亦称确定系数) R?。R最大值为
1。R%的值越接近1,说明回归直线对观测值的拟合程度越好,反之,R%值越小,说明回归直线对观测值的拟合程度越差.

这是网上的介绍,那么根据算法的公式

C++ 计算 拟合优度R^2,算法,算法,开发语言,C++

咱们实现自己的算法


如何实现:

1:拟合出自己的曲线方程式

y = a0 + a1*x + a2*x^2;

如下图:

C++ 计算 拟合优度R^2,算法,算法,开发语言,C++

具体这个函数的拟合方法,有相应的代码,可以点关注私信我,我使用opencv自带的函数

cv::solve

然后就是计算R Squared的值文章来源地址https://www.toymoban.com/news/detail-647433.html


代码块解析:

double calculateMean(QVector<double> &numbers)
{
    double sum = 0.0;
    int count = 0.0;

    for (double number : numbers)
    {
        sum += number;
        ++count;
    }

    // 返回平均值
    return sum / count;
}

double calculateYValue(double xValue)
{
    double yValue = 0.0;
    yValue = a0 + (a1 * xValue) + (a2*xValue*xValue);
    return yValue;
}

double calculateRfitValue(QVector<double> x, QVector<double> y)
{
    double yMean = calculateMean(y);

    double SSR = 0.0;
    double SSE = 0.0;
    double SST = 0.0;


    for(int i = 0; i < x.length(); ++i){
        SSR += pow((calculateYValue(x[i]) - yMean), 2);
        SSE += pow((y[i] - calculateYValue(x[i])), 2);
    }
    SST = SSR + SSE;
    return (1.0- abs(SSE/SST));
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QVector<double> myX = {29.82,
           29.62,
           29.42,
           29.21,
           29.01,
           28.8,
           28.59,
           28.38,
           28.17,
           27.97,
           27.76,
           27.55,
           27.34,
           27.13,
           26.92,
           26.71,
           26.5,
           26.3,
           26.09,
           25.88};
    QVector<double> myY = {133.2,
           135.2,
           137.12,
           139.2,
           141.2,
           142.3,
           143.5,
           144.2,
           144.9,
           145.3,
           143.6,
           145.8,
           144.6,
           143.4,
           142.0,
           140.2,
           138.7,
           136.2,
           133.7,
           130.4};
    qDebug() << "r2: " << calculateRfitValue(myX, myY);
    return a.exec();
}

到了这里,关于C++ 计算 拟合优度R^2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c++ 计算心率数据的几个算法

    其他可参考我写的go语言的算法计算,包含了http服务 go语言计算心率算法 //hrv 5 min RR 间期 平均值标准差 sdann // 24h 正常的RR间期总体标准差 sdnn // 24h 每5分钟时段 标准差的平均值 sdnn index // 两个相邻RR间期 差值的均方根RMSSD // 24h 相邻两个正常RR 间期差值 大于50ms 的个数百分比

    2024年02月16日
    浏览(39)
  • 曲线拟合的数值方法——《数值计算方法》

    《数值计算方法》系列总目录 第一章 误差序列实验 第二章 非线性方程f(x)=0求根的数值方法 第三章 CAD模型旋转和AX=B的数值方法 第四章 插值与多项式逼近的数值计算方法 第五章 曲线拟合的数值方法 第六章 数值微分计算方法 第七章 数值积分计算方法 第八章 数值优化方法

    2024年02月07日
    浏览(51)
  • go语言计算推算心率算法 http服务

    为了计算心率和并且将心率计算作为http服务来运行 1 基本数据 a) hrv heart rate variability b) 呼吸 2 傅里叶变换 计算频率 高频和低频 3 隐形马尔科夫 模型 hmm 重在于推测概率 根据最近的心率计算 4 神经网络计算 hrv 5 min RR 间期 平均值标准差 sdann 24h 正常的RR间期总体标准差 s

    2024年02月16日
    浏览(37)
  • 大数据机器学习与深度学习——过拟合、欠拟合及机器学习算法分类

    针对模型的拟合,这里引入两个概念:过拟合,欠拟合。 过拟合:在机器学习任务中,我们通常将数据集分为两部分:训练集和测试集。训练集用于训练模型,而测试集则用于评估模型在未见过数据上的性能。过拟合就是指模型在训练集上表现较好,但在测试集上表现较差的

    2024年02月04日
    浏览(42)
  • 拟合算法之最小二乘法

    与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是追求一个函数(曲线),使得该曲线在某种准测下与所有的数据点最为接近,即曲线拟合最好(最小化损失函数)。 插值算法中,得到的多项式f(x)要经过所有的样本点。但是如果样本点太多,

    2024年02月04日
    浏览(59)
  • 清风数学建模——拟合算法

    概念 在前面的篇幅中提到可以使用插值算法,通过给定的样本点推算出一定的曲线从而推算出一些想要的值。但存在一些问题。一是若样本点过多,那么多项式的次数过高会造成龙格现象;二是为了避免龙格现象而通过分段的思想求得拟合曲线,但这样会导致曲线函数非常复

    2024年02月12日
    浏览(40)
  • 3D点云平面拟合算法

    假设你有一组 3D 中的 n 个点,并且想要为它们拟合一个平面。 在本文中,我将推导出一个简单的、数值稳定的方法,并提供它的源代码。 听起来很好玩? 我们开始吧! NSDT工具推荐 : Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 

    2024年02月02日
    浏览(41)
  • 数学建模:拟合算法

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 根据1到12点间的温度数据求出温度与时间之间的近似函数关系 F ( t ) F(t) F ( t ) ,由 F ( t ) F(t) F ( t ) 推断 t =13.5 时的温度。这种根据离散数据求数据间近似函数关系的问题称为 曲线拟合问题 。 拟合问题与插值问题的区别在于

    2024年02月10日
    浏览(35)
  • 拟合算法模型

    来源:数学建模清风学习内容整理 与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟 合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所 有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。 要对拟合的函数 f ( x ) f(x) f ( x ) 取舍

    2024年02月10日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包