线性回归预测算法 C++ 完整代码
时间: 2024-09-11 15:10:24 浏览: 47
线性回归是一种常见的统计学预测模型,它假设因变量和自变量之间存在线性关系。在C++中实现线性回归预测,你可以使用基本的数学计算,不需要依赖复杂的库。下面是一个简单的线性回归模型(简单线性回归)的C++示例,用于预测单个自变量的输出:
```cpp
#include <iostream>
#include <vector>
// 计算最小二乘法回归系数
void linearRegression(std::vector<double> x, std::vector<double> y, double& m, double& b) {
int n = x.size();
double sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0;
for (int i = 0; i < n; ++i) {
sumX += x[i];
sumY += y[i];
sumXY += x[i] * y[i];
sumX2 += x[i] * x[i];
}
m = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
b = (sumY - m * sumX) / n;
}
// 预测函数
double predict(double x, double m, double b) {
return m * x + b;
}
int main() {
// 假设你有如下数据点(x, y)
std::vector<double> x = {1, 2, 3, 4, 5};
std::vector<double> y = {2, 4, 6, 8, 10};
// 初始化回归系数
double m, b;
// 训练模型
linearRegression(x, y, m, b);
// 对新数据点进行预测
double newX = 6; // 假设我们要预测6的y值
double predictedY = predict(newX, m, b);
std::cout << "对于x=" << newX << ", 预测的y值是: " << predictedY << std::endl;
return 0;
}
```
阅读全文