1. 最小二乘法
首先举个例子。
针对线性最小二乘法即直线拟合,如下图(来自维基百科)所示:
根据已有的数据(图中的点),来做出一条最贴近数据发展趋势的直线。
通过这条直线,我们可以对未来的数据进行预测,因为基本会落在这条直线附近。
当然了,最小二乘法不只是直线,还可以是曲线,本文不讨论。
2. 求解直线方程
我们现在要做的,就是求解直线方程。
假设已知有N个点,设这条直线方程为: y = a·x + b
其中,a和b的计算公式如下:
3. 算法代码
#define DEFAULT_EPS 1e-15
STATUS LeastSquareLinearFit(double *x, double *y, const int num, double *a, double *b)
{
int i = 0;
double denominator = 0.0;
double sum_xsquared &