3

配列に格納されている一連のダブルポイントの回帰を計算するための最速/最も簡単なソリューションを探しています。
Accelerateフレームワークまたはチュートリアルで適切な機能を見つけようとしましたが、うまくいきませんでした。

誰かがそれをしましたか?

4

1 に答える 1

1

モデルのパラメーターをすでに知っていると仮定すると、行列とベクトルの乗算でそれを行うことができます。線形回帰は、サンプルの行列Xとモデルパラメーターのベクトルシータの内積です。

// 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 に答える