深度学习导论知识——最小二乘法(OrdinaryLeastSquares,OLS)ttweixiao9999

最小二乘法(OrdinaryLeastSquares,OLS)是常见的估计模型参数的方法。

早在19世纪,勒让德就认为按照“误差的平方和最小”这个规则估计出来的模型是最接近真实情形的。于是就有:

其中,yi是观测值或真实值,即样本数据,即采集得到的数据。f(xi)是把数据带入假设的模型中得到的理论值。即这个式子表示:真实值和理论值距离的平方和最小的时候,对假设的模型估计出来的参数是最接近真实情形的。这个准则被称为最小二乘准则。这里的“二乘”就是平方的意思。

2.公式推导

首先定义线性回归的目标函数(ObjectiveFunction)或称损失函数(LossFunction)为均方误差(MeanSquaredError,MSE),公式为误差平方和(sumofsquarederrors,SSE)除以样本数(n),其中

MSE越小越小,所以是一个最小化的问题。

3.以矩阵表示SSE:

注意:这里的wx已经包含了b*x0这一项,即wx是个大矩阵,横向拼接了特征变量矩阵wx以及偏移矩阵b,这部分可在之后的范例1中的代码X=np.hstack((X,b))这句看出。之外,矩阵计算乘法要遵循第一个矩阵的列等于第二个矩阵的行这个规则,所以(y-wx)2变换到矩阵形式为(y-wx)T(y-wx)。

(2)对w偏微分得

结合矩阵、微分,我们就能够轻松求出线性回归的系数,此原理是神经网络优化求解的基石。

3.程序代码

范例1:以普通最小二乘法建立线性回归模型,预测波士顿(Boston)房价。

(1)依据以上公式推导的结论(即最后一个公式)计算出回归系数。

#载入套件importnumpyasnpfromsklearnimportdatasets#载入sklearn内建数据集ds=datasets.load_boston()#特征变数,即用于预测房价的变量值,shape=(506,13)X=ds.data#b=b*x^0,shape=(506,1)b=np.ones((X.shape[0],1))#通过横向拼接将b并入w,shape=(506,14)X=np.hstack((X,b))#目标变数,即最终预测出来的房价,shape=(506,)y=ds.target#根据以上推导的最后一个公式求解出wW=np.linalg.inv(X.T@X)@X.T@yprint(f'W={W}')代码运行结果:

1#计算效能衡量指标2#计算误差平方和SSE(sumofsquarederrors,SSE),SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功3SSE=((X@W-y)**2).sum()4#计算均方误差MSE(MeanSquaredError,MSE)5MSE=SSE/y.shape[0]6#计算均方根误差RMSE(RootMeanSquaredError,RMSE)7RMSE=MSE**(1/2)8print(f'MSE={MSE}')9print(f'RMSE={RMSE}')1011#计算判别系数(R^2),该统计量越接近1,表明变量对y的解释能力越强,即模型对数据拟合的越好12#ravel可以让多维数据变成一维13y_mean=y.ravel().mean()14SST=((y-y_mean)**2).sum()15R2=1-(SSE/SST)16print(f'R2={R2}')代码运行结果:

(3)以Sklearn库自带的求解线性回归模型的函数和衡量指标的函数验证以上推导过程。

1fromsklearn.linear_modelimportLinearRegression2fromsklearn.metricsimportr2_score,mean_squared_error34#模型训练5lr=LinearRegression()6lr.fit(X,y)78#预测9y_pred=lr.predict(X)1011#回归系数12print(f'W={lr.coef_},{lr.intercept_}\n')1314#计算效能衡量指标15print(f'MSE={mean_squared_error(y,y_pred)}')16print(f'RMSE={mean_squared_error(y,y_pred)**.5}')17print(f'R2={r2_score(y,y_pred)}')代码运行结果:

从代码运行结果可知,以上公式推导的结果和函数库计算出来的结果一致。

范例2:使用Scipy以普通最小二乘法计算函数x2+5的最小值。

先对函数绘图,再调用scipy.optimize模块的leastsq()函数进行优化求解。

1#函数绘图2importnumpyasnp3importmatplotlib.pyplotasplt4fromscipy.optimizeimportleastsq5plt.ion()67x=np.linspace(-5,5,11)8910#x^2+511deff(x):12returnx**2+5131415#绘座标轴16plt.axhline()17plt.axvline()18#绘图19plt.plot(x,f(x),'g')20plt.scatter([0],[5],color='r')2122importnumpyasnp23fromscipy.optimizeimportleastsq242526#x^2+527deff(x):28returnx**2+5293031#使用最小平方法求解32#leastsq():Minimizethesumofsquaresofasetofequations.33print(leastsq(f,5,full_output=1))#full_output=1==>显示详尽的结果代码运行结果:

在leastsq()函数中,第一个参数是求解的函数;第二个参数是起始点;leastsq()是采用逼近法,而非纯数学公式求解,nfev显示它经过22次执行周期,才找到最小值5(fvec),当时x=1.72892379e-05≈0。

leastsq()第二个参数起始点可设置为任意值,通常采用随机数或是直接给0。指定值设定不佳的话,仍然可以找到最佳解,不过,需要较多次的执行周期,也就是所谓的较慢收敛(Convergence)。

当面对较复杂的函数或较多的变量时,我们很难单纯运用数学去求解,因此,逼近法会是一个比较实用的方法,深度学习的梯度下降法就是一个典形的例子。

备注:以上2.公式推导和3.程序代码均来自《深度学习全书公式+推导+代码+TensorFlow全程案例》——洪锦魁主编清华大学出版社ISBN978-7-302-61030-4这本书。

THE END
1.数学优化算法最小二乘法? 原理:共轭梯度法结合了最速下降法和牛顿法的优点,它利用一阶导数信息并沿着共轭方向进行搜索,以加快收敛速度。 ? 优点:所需存储量小,具有步收敛性,稳定性高。 四、应用 最小二乘法优化算法广泛应用于各种领域,如回归分析、曲线拟合、参数估计、图像处理等。特别是在机器学习和深度学习中,最小二乘法作为https://blog.csdn.net/xioayanran123/article/details/144229105
2.普通最小二乘法(OLS)(空间统计)—ArcMap文档执行全局“普通最小二乘法 (OLS)”线性回归可生成预测,也可为一个因变量针对它与一组解释变量关系建模。 可从结果窗口获取此工具的结果(包括可选报表文件)。如果禁用了后台处理,结果也将被写入进度对话框。 注: 此工具的功能包含在ArcGIS Pro 2.3新增的广义线性回归工具中。广义线性回归工具支持其他模型。 https://desktop.arcgis.com/zh-cn/arcmap/latest/tools/spatial-statistics-toolbox/ordinary-least-squares.htm
3.常用算法分析——最小二乘法普通最小二乘法(OLS) OLS实现 广义最小二乘法(GLS)简介 1、引言 最小二乘法应该是我们最早接触的一种数值估计算法。它的特殊形式——一元线性回归,被广泛地应用于多种数值统计分析场合。例如,在验证欧姆定律(U=IR)时,通常的实验方法是分别测量出多个不同电压Ui下,通过电阻的电流值Ii,然后将这些(Ui,Ii)观测https://www.jianshu.com/p/3c058de103bf
4.SPSS普通最小二乘法大家好,我现在正在写毕业论文,用到普通最小二乘法,但是我不知道要怎么用,求救大家。 公式: ⅠDAⅠ = β0+β1*M+β2*M²+β3*M³+β4*REWARD+β5*SIZE+β6*DEBT+ξ 因变量:ⅠDAⅠ为操控性应计利润绝对值;自变量:M为高管持股比例; https://bbs.pinggu.org/jg/huiji_huijiku_965982_1.html
5.计量经济学中的普通最小二乘法(OLS)的4个基本假设条件是什么什么是广义最小二乘法GLS?与普通最小二乘法OLS有什么区别? 计量经济学中的OLS是什么意思 如何用SPSS17.0进行普通最小二乘法分析数据?是有分析--回归里么?里面只有二阶最小二乘法.没有OLS啊. 特别推荐 热点考点 2022年高考真题试卷汇总 2022年高中期中试卷汇总 2022年高中期末试卷汇总 2022年高中月考试卷汇总https://www.zybang.com/question/c923cf08f1a87b927b91ebffd14f2aa3.html
6.§广义最小二乘法.doc矩阵的估计为 二、广义最小二乘法的示例 湖北省病虫灾成灾面积与受灾面积对应关系的分析 病虫灾成灾面积与受灾面积的对应关系的研究对于指导抗灾、救灾有着重大的意义。从统计分析的角度出发,利用逐年的统计资料将病虫灾成灾面积数据看成时间序列,病虫灾受灾面积数据看成时间序列,应用普通最小二乘法可以建立线性模型给https://max.book118.com/html/2017/0805/126114905.shtm
7.2012年1月计量经济学自考试题A.普通最小二乘法 B.广义差分法 C.间接最小二乘法 D.阿尔蒙多项式法 18.当替代弹性σ→1,替代参数ρ→0时,CES生产函数趋于( ) A.线性生产函数 B.C—D生产函数 C.投入产出函数 D.其它 19.进行宏观经济模型的总体设计时,首先需确定( ) A.模型的结构 B.函数形式 https://www.hbzkw.com/exam/20120217170032.html
8.科学网—线性回归最小二乘法和梯度下降法mwy线性回归-最小二乘法和梯度下降法mwy 什么是一元线性模型呢?监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析https://blog.sciencenet.cn/blog-3413658-1177223.html