C++ 计算 拟合优度R^2
解决的问题:
拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度,度量拟合优度的统计量是可决系数(亦称确定系数) R?。R最大值为
1。R%的值越接近1,说明回归直线对观测值的拟合程度越好,反之,R%值越小,说明回归直线对观测值的拟合程度越差.
这是网上的介绍,那么根据算法的公式

咱们实现自己的算法
如何实现:
1:拟合出自己的曲线方程式
y = a0 + a1*x + a2*x^2;
如下图:

具体这个函数的拟合方法,有相应的代码,可以点关注私信我,我使用opencv自带的函数
cv::solve
然后就是计算R Squared的值
代码块解析:
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- 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
解决的问题: 拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度,度量拟合优度的统计量是可决系数(亦称确定系数) R?。R最大值为 1。R%的值越接近1,说明回归直线对观测值的拟合程度越好,反之,R%值越小&#x…...
Springboot-Retrofit HTTP工具框架快速使用
在SpringBoot项目直接使用okhttp、httpClient或者RestTemplate发起HTTP请求,既繁琐又不方便统一管理。 因此,在这里推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架retrofit-spring-boot-starter,使用非常简单方便,同时又提供…...
微信小程序实现人脸识别(从一个没有开通人脸核身的小程序跳转到要给开通人脸核身的小程序,进行人脸识别后再跳转回来)
A小程序没有开通人脸识别功能,B小程序开通了人脸识别。 总体思路是:从A小程序需要进行人脸识别的地方携带参数跳转到B小程序进行人脸识别,识别后把参数传递回来。 A小程序的参考代码如下: //人脸识别相关 start powerDrawerFace(e){var that = thisthat.setData({faceO…...
CSS-grid布局
网格布局也叫grid布局,平常写样式的时候基本上都是用的flex布局。 像以下布局,用flex布局就可能会有有点麻烦,这时候用grid布局就方便的多了。 或者是照片墙 grid布局就是将容器划分为行和列,产生单元格,然后在指定的…...
【JavaEE进阶】Bean 作用域和生命周期
文章目录 一. 关于Bean作用域的实例1. lombok2. 实例代码 二. 作用域定义1. Bean的六种作用域2. 设置作用域 三. Spring 执行流程和 Bean 的生命周期1. Spring 执行流程2. Bean生命周期 一. 关于Bean作用域的实例 注意在此例子中需要用到lombok 1. lombok lombok是什么? Lo…...
3分钟自建查分系统?现在每个人都可以实现了
学生成绩查询系统在现代教育管理中扮演着重要的角色,它不仅可以方便学生和家长查询成绩,也能帮助老师更好地管理和分析学生的学业表现。作为一名教师,了解如何制作学生成绩查询系统是提高教学效率和管理学生成绩便利性的关键。 在制作学生成…...
关于APP备案、小程序备案的问题,如何备案?
近日,工信部发布了关于开展移动互联网应用程序备案工作的通知。为落实相关法律法规要求,促进互联网行业规范健康发展,进一步做好移动互联网信息服务管理,现组织开展移动互联网应用程序(以下简称 APP)备案工…...
git上传代码后,如何清空历史日志以及文件操作,重新上传?以及上传代码
【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库 马三也算Github的忠实用户了,经常会把一些练手的项目传到Github上面进行备份。其中有一个名为ColaFramework的Unity框架项目,马三开发了一年多了,期间提交代码的…...
超导热催生meme,换汤不换药的投机轮回
文/章鱼哥 出品/陀螺财经 币圈对炒作meme概念的热情从未消亡过。 随着一种名为LK-99的物质被发现,围绕超导的兴奋不仅激发了科学界,加密货币相关概念也与之沸腾。不出所料,与此前围绕元宇宙、AI大肆炒作一样,许多meme代币已经出现…...
【HashMap】 73. 矩阵置零
73. 矩阵置零 解题思路 首先遍历矩阵找到所有的0元素 将其的行和列索引记录下俩遍历矩阵 将所有的需要更新的元素进行更新 也就是查找hashmap中的每一个元素进行更新查找行或者列是否在hashmap中 class Solution {public void setZeroes(int[][] matrix) {// 首先遍历矩阵找…...
Vue-2.nodejs的介绍和安装
nodejs简介 ► 创建 Node.js 应用:package.json 首先,创建一个新文件夹以便于容纳需要的所有文件,并且在此其中创建一个 package.json 文件,描述你应用程序以及需要的依赖: 配合着你的 package.json 请运行 npm install。如果你…...
分别用Vue和Java来实现的风靡一时的2048 游戏
目录 1、Vue实现2、Java实现 2048 游戏是一个基于网格的数字益智游戏,玩家需要通过滑动相同的数字来合并它们,并最终得到一个值为 2048 的方块。以下是分别用Vue和Java来实现的 2048 游戏,包含运行效果。 1、Vue实现 首先,创建一…...
echarts甘特图 一个值多条线
先看图 这里我们用到的是 series :type:custom 自定义,但是这里我遇到一个问题,就是不过你在series里push多少数据,图表上显示的都是在同一水平线,用了好多方法都不好使, renderItem: (params, api) >…...
多态性说明
多态 多态性多态性类型描述编译时多态和运行时多态的差异go 语言多态性 多态性 多态性类型描述 多态性是面向对象编程中的一个重要概念,它允许不同的对象通过相同的接口表现出不同的行为,从而实现更加灵活和可扩展的代码结构。多态性有助于降低代码的耦…...
2023-08-04 LeetCode每日一题(不同路径 III)
2023-08-04每日一题 一、题目编号 980. 不同路径 III二、题目链接 点击跳转到题目位置 三、题目描述 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以…...
腾讯云服务器地域怎么选?可用区是什么?
腾讯云服务器地域有什么区别?怎么选择比较好?地域选择就近原则,距离地域越近网络延迟越低,速度越快。关于地域的选择还有很多因素,地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域价格因素…...
第一百二十三天学习记录:C++提高:STL-vector容器(下)(黑马教学视频)
vector插入和删除 功能描述: 对vector容器进行插入、删除操作 函数原型: push_back(ele); //尾部插入元素ele pop_back(); //删除最后一个元素 insert(const_iterator pos, ele); //迭代器指向位置pos插入元素ele insert(const_iterator pos, int cou…...
谈谈Spring与字节码生成技术
Spring框架是一个面向企业级Java应用开发的开源框架,它提供了许多功能和特性来简化Java开发过程。字节码生成技术在Spring框架中起着重要的作用,用于实现依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriente…...
Java数组详解 -- 基础知识与常用操作
文章目录 前言一、初识数组1. 数组的定义2. 数组的特点3. 声明和初始化数组4. 默认初始化值 二、访问和操作数组元素1. 数组的索引和范围2. 通过索引访问数组元素3. 修改数组元素的值 三、数组的长度和属性1. 数组的长度计算2. 数组的长度属性3. 数组越界的错误 四、数组的遍历…...
(统计学习方法|李航)第五章 决策树——一二三节:决策树模型与学习,特征选择,决策树的生成,
目录 一,决策树模型与学习 1.决策数模型 2.决策树与if-then规则 3.决策树与条件概率分布 4.决策树学习 二,特征选择 1.特征选择问题 2.信息增益 3.信息增益比 三,决策树的生成 1.ID3算法 2.C4.5的生成算法 一,决策树模型…...
2026年离散制造业生产全流程智能化的最新趋势是什么?基于实在Agent的柔性生产实践
进入2026年,离散制造业的数字化转型已跨越了单纯的“机器换人”阶段。 随着“中国制造2025”迈入成果巩固期,行业核心痛点已从局部产能提升转向全价值链的深度融合。 在这一背景下,生产全流程智能化呈现出技术深度融合、理念范式革新与绿色低…...
哔哩下载姬DownKyi:5分钟搞定B站视频下载的完整免费方案
哔哩下载姬DownKyi:5分钟搞定B站视频下载的完整免费方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&…...
K8s Pod 调度策略与优先级算法优化
Kubernetes作为容器编排领域的标杆,其Pod调度策略与优先级算法的优化直接影响集群资源利用率与应用稳定性。随着企业微服务规模扩大,如何让调度器更智能地平衡节点负载、保障关键业务,成为运维团队的核心挑战。本文将深入剖析调度优化关键技术…...
告别HIDL编译怪错:详解Android 14中sparse image与raw image的转换陷阱与正确mount姿势
Android 14系统镜像处理实战:从格式解析到HIDL兼容性保障 在Android系统开发的深水区,镜像文件处理往往是那些看似简单却暗藏玄机的技术环节。最近在Android 14的适配过程中,不少开发者反馈在vendor分区处理时遭遇了棘手的HIDL服务验证失败问…...
Phi-4-mini-reasoning算法精讲:十大排序算法原理与模型实现对比
Phi-4-mini-reasoning算法精讲:十大排序算法原理与模型实现对比 1. 排序算法概述 排序算法是计算机科学中最基础也最重要的算法类别之一。简单来说,排序就是把一堆数据按照某种规则重新排列的过程。想象一下你整理书架的场景:可以按书名首字…...
Windows和Office激活终极指南:KMS_VL_ALL_AIO一站式智能解决方案
Windows和Office激活终极指南:KMS_VL_ALL_AIO一站式智能解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾经面对Windows激活弹窗感到束手无策?或者为Offi…...
大语言模型推理机制:Prefill、Decode与KV Cache解析
1. 大语言模型推理机制全景解析当我们在聊天窗口输入问题并按下回车键时,大语言模型(LLM)内部究竟发生了什么?这个看似瞬间完成的过程,实际上经历了复杂的计算流程。理解prefill(预填充)、decod…...
游戏运存小启动不起来临时解决方法
比较吃内存如果内存小的服务器怎么办呢?启动的时候常常因为因为服务器运存小的原因造成9228端口或者游戏没起来等等问题,造成游戏提示网络异常,请检查网络连接进不去游戏提示,这个时候我们只需调整一下启动文件的里面的配置文件即…...
DownKyi哔哩下载姬:5分钟掌握B站视频高效下载与管理终极方案
DownKyi哔哩下载姬:5分钟掌握B站视频高效下载与管理终极方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
第12章 I2C总线与EEPROM 12.2
12.2.I2C寻址模式上一节介绍的是I2C每一位信号的时序流程,而I2C通信在字节级的传输中,也有固定的时序要求。I2C通信的起始信号(Start)后,首先要发送一个从机的地址,这个地址一共有7位,紧跟着的第8位是数据方向位(R/W)&…...
