我正在寻找一种最快/最简单的解决方案来计算存储在数组中的一堆双点的回归 我试图在Accelerate框架或教程中找到合适的功能,但没有运气。
有人做过吗?
答案 0 :(得分:1)
假设您已经知道模型的参数,可以使用矩阵向量乘法来完成。线性回归是样本矩阵X的inner product和模型参数的矢量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]
有关详细信息,请参阅intro to linear regression on wikipedia