3

我正在寻找一种最快/最简单的解决方案来计算存储在数组中的一堆双点的回归。
我试图在 Accelerate 框架或教程中找到合适的功能,但没有运气。

有人做过吗?

4

1 回答 1

1

假设您已经知道模型的参数,您可以使用矩阵向量乘法来完成。线性回归是样本矩阵 X 与模型参数向量 Theta 的内积

// Simple scenario for linear regression: Y = theta0 + theta1*X
int rows = 4;
int cols = 2;
double theta[] = {5.0, 2.0};
double x[] = {1.0, 10.0, 
              1.0, 20.0, 
              1.0, 30.0, 
              1.0, 40.0};
double y[rows];

// This is matrix-matrix multiplication function, 
// but vector is just a matrix with one row/column. 
vDSP_mmulD(x, 1, theta, 1, y, 1, rows, 1, cols);

NSLog(@"[%f, %f, %f, %f]", y[0], y[1], y[2], y[3]);

[25.000000, 45.000000, 65.000000, 85.000000]

有关更多详细信息,请阅读维基百科上的线性回归介绍

于 2013-09-24T21:14:42.810 回答