精华内容
下载资源
问答
  • 所谓回归分析实际上就是根据统计数据建立一个方程, 用这个方程来描述不同变量之间的关系, 而这个关系又无法做到想像函数关系那样准确, 因为即使你重复全部控制...首先普通最小二乘法是作为回归来使用,将预测值...

    所谓回归分析实际上就是根据统计数据建立一个方程, 用这个方程来描述不同变量之间的关系, 而这个关系又无法做到想像函数关系那样准确, 因为即使你重复全部控制条件,结果也还有区别, 这时通过让回归方程计算值和试验点结果间差值的平方和最小来建立 回归方程的办法就是最小二乘法,二乘的意思就是平方。 最小二乘就是指回归方程计算值和实验值差的平方和最小。

    首先普通最小二乘法是作为回归来使用,将预测值和真实值去比较,是这个误差函数最小,至于为什么叫二乘,因为这里取得是预测值和真实值的平方。

    普通最小二乘法经常会引起欠拟合,因为普通最小二乘法将所有的序列值设置为相同的权重;但是对于实际中来说,一个时间序列,最近发生的应该比先前发生的更加重要,所以我们应该将最近发生的赋予更大的权重,先前发生的赋予小一点的权重,这种就变成了加权最小二乘法。

    对于普通最小二乘法,因为种种原因(原因以后分析。。)残差项要满足很多的条件,如同方差性,但是因为现实中的数据可能达不到这样那样的要求,所以这个时候就出现了广义最小二乘法,所以如下引用:

    1.如果存在外部协方差,即协方差阵不是对角阵,就是广义最小二乘

    2.如果协方差阵是对角阵,且对角线各不相等,就是权重最小二乘

    3.如果协方差阵是对角阵,且对角线相同,就是普通最小二乘

    另外在知乎上看到一个比较形象的解释:

    简单举个例子,具体就不用符号了,推来推去太复杂。假设你有一把尺子,去测量一个物体的长度。你用同一把尺子测量n次,每次的测量误差就是这个尺子的误差(忽略其他因素),这就是我们所说的最小二乘里的同方差假定。
    现在你换一种方法,还是测量n次,但是你每次测量用的尺子精度不一样,有点大,有的小。这就是说所谓的“异方差”,这个时候你用普通最小二乘,就会导致估计不一致,这个时候,你想到一个办法就是,对于估计量中的样本,除以相应样本的那把尺子的误差,这样处理之后,就又变成同方差了。

    展开全文
  • 所谓回归分析实际上就是根据统计数据建立一个方程, 用这个方程来描述不同变量之间的关系, 而这个关系又无法做到想像函数关系那样准确, 因为即使你重复...首先普通最小二乘法是作为回归来使用,将预测值和真实值...

    所谓回归分析实际上就是根据统计数据建立一个方程, 用这个方程来描述不同变量之间的关系, 而这个关系又无法做到想像函数关系那样准确, 因为即使你重复全部控制条件,结果也还有区别, 这时通过让回归方程计算值和试验点结果间差值的平方和最小来建立 回归方程的办法就是最小二乘法,二乘的意思就是平方。 最小二乘就是指回归方程计算值和实验值差的平方和最小。

    首先普通最小二乘法是作为回归来使用,将预测值和真实值去比较,是这个误差函数最小,至于为什么叫二乘,因为这里取得是预测值和真实值的平方。

    普通最小二乘法经常会引起欠拟合,因为普通最小二乘法将所有的序列值设置为相同的权重;但是对于实际中来说,一个时间序列,最近发生的应该比先前发生的更加重要,所以我们应该将最近发生的赋予更大的权重,先前发生的赋予小一点的权重,这种就变成了加权最小二乘法。

    对于普通最小二乘法,因为种种原因(原因以后分析。。)残差项要满足很多的条件,如同方差性,但是因为现实中的数据可能达不到这样那样的要求,所以这个时候就出现了广义最小二乘法,所以如下引用:

    1.如果存在外部协方差,即协方差阵不是对角阵,就是广义最小二乘

    2.如果协方差阵是对角阵,且对角线各不相等,就是权重最小二乘

    3.如果协方差阵是对角阵,且对角线相同,就是普通最小二乘

    另外在知乎上看到一个比较形象的解释:

    简单举个例子,具体就不用符号了,推来推去太复杂。假设你有一把尺子,去测量一个物体的长度。你用同一把尺子测量n次,每次的测量误差就是这个尺子的误差(忽略其他因素),这就是我们所说的最小二乘里的同方差假定。
    现在你换一种方法,还是测量n次,但是你每次测量用的尺子精度不一样,有点大,有的小。这就是说所谓的“异方差”,这个时候你用普通最小二乘,就会导致估计不一致,这个时候,你想到一个办法就是,对于估计量中的样本,除以相应样本的那把尺子的误差,这样处理之后,就又变成同方差了。



    作者:gurudk
    链接:https://www.zhihu.com/question/37930145/answer/140471525
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    将看到的比较好的解释放在这里:

    机器学习笔记----最小二乘法,局部加权,岭回归讲解

     

    展开全文
  • 普通最小二乘法

    千次阅读 2018-08-02 23:59:57
    sklearn中的LinearRegression类拟合了一个带有系数w=(w1,w2,...,wp)w=(w1,w2,...,wp)w=(w_1,w_2,...,w_p)的线形模型,使得数据集实际观测数据和预测数据之间的残差平方和最小: minw||Xw−y||22minw||Xw−y||22min_...

    什么是普通最小二乘法

    普通最小二乘法(Ordinary Least Squares,OLS),是一种线性最小二乘法,用于估计线性回归模型中的未知参数。

    通俗解释:

    最小,即最小化;

    二乘,即真实的观测的因变量的值与预测的因变量的值的差的平方和,
    ()2\sum (真实因变量-预测因变量)^2

    直观上来看,就是要使得 「集合中每个数据点和回归曲面上对应预测的点的距离的平方的和」 达到最小,这样模型对数据才拟合得最好。

    如下图所示,其中 A,B,C,D,E,F{A,B,C,D,E,F} 为数据点,要最小化的就是 「红色线段的长度的平方的和」
    OLS

    如何推导OLS

    一般标记:

    • mm 代表训练集中实例的数量
    • xx 代表特征/输入变量
    • yy 代表目标变量/输出变量
    • (x,y)(x,y) 代表训练集中的实例
    • (x(i),y(i))(x^{(i)},y^{(i)}) 代表第i 个观察实例

    线性回归的一般形式:     
    hθ(x)=θ0+θ1x1+θ2x2+...+θnxnh_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}

    θ=[θ0,θ1]\theta=[\theta_0,\theta_1]hθ(x)=θTXh_{\theta} \left( x \right)={\theta^{T}}X,需要极小化的代价函数是:
    J(θ0,θ1...θn)=12mi=1m(hθ(x(i))y(i))2=12(Xθy)T(Xθy)J\left( {\theta_{0}},{\theta_{1}}...{\theta_{n}} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}\\ = \frac{1}{2}({X\theta} -{y})^T({X\theta} - {y})

    损失函数、代价函数和目标函数的区别

    正规方程

    θ=(XTX)1XTY{\theta} = ({X^{T}X})^{-1}{X^{T}Y}

    推导过程

    J(θ)=12mi=1m(hθ(x(i))y(i))2J\left( \theta \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)}} \right)}^{2}}}
    其中:hθ(x)=θTX=θ0x0+θ1x1+θ2x2+...+θnxn{h_{\theta}}\left( x \right)={\theta^{T}}X={\theta_{0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}

    将向量表达形式转为矩阵表达形式,则有J(θ)=12(Xθy)2J(\theta )=\frac{1}{2}{{\left( X\theta -y\right)}^{2}}

    其中XXmmnn列的矩阵(mm为样本个数,nn为特征个数),θ\thetann行1列的矩阵,yymm行1列的矩阵,对J(θ)J(\theta )进行如下变换

    J(θ)=12(Xθy)T(Xθy)J(\theta )=\frac{1}{2}{{\left( X\theta -y\right)}^{T}}\left( X\theta -y \right)

    =12(θTXTyT)(Xθy)=\frac{1}{2}\left( {{\theta }^{T}}{{X}^{T}}-{{y}^{T}} \right)\left(X\theta -y \right)

    =12(θTXTXθθTXTyyTXθyTy)=\frac{1}{2}\left( {{\theta }^{T}}{{X}^{T}}X\theta -{{\theta}^{T}}{{X}^{T}}y-{{y}^{T}}X\theta -{{y}^{T}}y \right)

    接下来对J(θ)J(\theta )偏导,需要用到以下几个矩阵的求导法则:

    dABdB=AT\frac{dAB}{dB}={{A}^{T}}

    dXTAXdX=2AX\frac{d{{X}^{T}}AX}{dX}=2AX

    所以有:

    J(θ)θ=12(2XTXθXTy(yTX)T0)\frac{\partial J\left( \theta \right)}{\partial \theta }=\frac{1}{2}\left(2{{X}^{T}}X\theta -{{X}^{T}}y -{}({{y}^{T}}X )^{T}-0 \right)

    =12(2XTXθXTyXTy0)=\frac{1}{2}\left(2{{X}^{T}}X\theta -{{X}^{T}}y -{{X}^{T}}y -0 \right)

    =XTXθXTy={{X}^{T}}X\theta -{{X}^{T}}y

    J(θ)θ=0\frac{\partial J\left( \theta \right)}{\partial \theta }=0,

    则有θ=(XTX)1XTy\theta ={{\left( {X^{T}}X \right)}^{-1}}{X^{T}}y

    梯度下降法

    梯度下降法的具体知识点请看这里

    1、 批量梯度下降

    一般形式:

    θj=θjαθjJ(θ0,θ1,...,θm)=θjαθj12mi=1m(hθ(X(i))y(i))2=θjα1mi=1m((hθ(X(i))y(i))Xj(i))\theta_j\\=\theta_j-\alpha\frac \partial {\partial \theta_j}J(\theta_0,\theta_1,...,\theta_m)\\ =\theta_j-\alpha\frac \partial {\partial\theta_j}\frac 1 {2m} \sum_{i=1}^m(h_{\theta}(X^{(i)})-y^{(i)})^2 \\ =\theta_j-\alpha\frac 1 m \sum_{i=1}^m((h_{\theta}(X^{(i)})-y^{(i)})·X_j^{(i)})

    当n>=1时,
    θ0:=θ0a1mi=1m(hθ(x(i))y(i))x0(i){{\theta }_{0}}:={{\theta }_{0}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{0}^{(i)}

    θ1:=θ1a1mi=1m(hθ(x(i))y(i))x1(i){{\theta }_{1}}:={{\theta }_{1}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{1}^{(i)}

    θ2:=θ2a1mi=1m(hθ(x(i))y(i))x2(i){{\theta }_{2}}:={{\theta }_{2}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{2}^{(i)}

    矩阵形式:
    θ=θ1mαXT(XθY)\theta= \theta -\frac 1 m \alpha{X}^T({X\theta} -{Y})其中α\alpha为步长。

    2、随机梯度下降
    θ=θαXiT(XiθYi)\theta=\theta- \alpha X_i^T(X_i\theta-Y_i)

    3、 小批量梯度下降

    θ=θ1MαXMT(XMθYM)\theta=\theta-\frac 1 M \alpha X_M^T(X_M\theta-Y_M)

    其中 MMbatch_sizeXMX_M表示MM条数据,YMY_MXMX_M对应的yy的值。

    展开全文
  • 普通最小二乘法回归_源码数据 包含 数据集 Cal_housing.csv ,源码 ExistData.py ,SimulateData.py
  • y=wi*xi+b,基于最小二乘法的线性回归:寻找参数w和b,使得w和b对x_test_data的预测值y_pred_data与真实的回归目标y_test_data之间的均方误差最小。

    y=wi*xi+b,基于最小二乘法的线性回归:寻找参数w和b,使得w和b对x_test_data的预测值y_pred_data与真实的回归目标y_test_data之间的均方误差最小。

    公式推导:
    在这里插入图片描述
    基于最小二乘法构造linear_model有5个步骤:
    1、导包。

    from sklearn import linear_model
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error
    

    sklearn中有专门的线性模型包linear_model,numpy用于生成数据,matplotlib用于画图,另外导入MSE,R_Square和MAE三个评价指标。
    2、构造数据集。可以自动生成数据,也可以寻找现有数据,以下数据是作业中的数据,样本数据只有一个特征。
    3、训练模型。
    4、输出系数w和截距b并对测试集进行预测。
    5、作图。

    完整代码:

    import pandas as pd
    import matplotlib.pyplot as plt
    from sklearn import linear_model
    import numpy as np
    from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error
    
    def load_data():
        data=pd.read_csv('Salary_Data.csv',encoding='gbk')
        data=data.values.tolist()
        train_x=[];train_y=[]
        test_x=[];test_y=[]
        #前一半作为训练集,后一半作为测试集
        for i in range(len(data)):
            if i<len(data)/2:
                train_x.append(data[i][0])
                train_y.append(data[i][1])
            else:
                test_x.append(data[i][0])
                test_y.append(data[i][1])
        return train_x,train_y,test_x,test_y
    
    def model():
        print('手写:')
        train_x,train_y,test_x,test_y=load_data()
        #最小二乘法得到参数
        sum=0.0;sum_square=0.0;sum_2=0.0;sum_b=0.0
        for i in range(len(train_x)):
            sum=sum+train_x[i]
            sum_square=sum_square+train_x[i]**2
        ave_x=sum/len(train_x)
        for i in range(len(train_x)):
            sum_2=sum_2+(train_y[i]*(train_x[i]-ave_x))
        w=sum_2/(sum_square-sum**2/len(train_x))
        for i in range(len(train_x)):
            sum_b=sum_b+(train_y[i]-w*train_x[i])
        b=sum_b/len(train_x)
        print('w=',w,'b=',b)
        #测试
        pred_y=[]
        for i in range(len(test_x)):
            pred_y.append(w*test_x[i]+b)
        #计算MSE,MAE,r2_score
        sum_mse=0.0;sum_mae=0.0
        sum1=0.0;sum2=0.0
        for i in range(len(pred_y)):
            sum_mae=sum_mae+np.abs(pred_y[i]-test_y[i])
            sum_mse=sum_mse+(pred_y[i]-test_y[i])**2
        sum_y=0.0
        for i in range(len(test_y)):
            sum_y=sum_y+test_y[i]
        ave_y=sum_y/len(test_y)
        for i in range(len(pred_y)):
            sum1=sum1+(pred_y[i]-test_y[i])**2
            sum2=sum2+(ave_y-test_y[i])**2
        print('MSE:',sum_mse/len(pred_y))
        print('MAE:',sum_mae/len(pred_y))
        print('R2_Squared:',1-sum1/sum2)
        #显示
        plt.scatter(test_x, test_y, color='black')
        plt.plot(test_x, pred_y, color='blue', linewidth=3)
        plt.show()
        print('\n')
    
    #调包
    def sklearn_linearmodel():
        print('调包:')
        train_x, train_y, test_x, test_y = load_data()
        train_x=np.array(train_x).reshape(-1,1)
        train_y = np.array(train_y).reshape(-1, 1)
        test_x = np.array(test_x).reshape(-1, 1)
        test_y = np.array(test_y).reshape(-1, 1)
        # 训练+测试
        lr = linear_model.LinearRegression()
        lr.fit(train_x, train_y)
        y_pred = lr.predict(test_x)
    
        # 输出系数和截距
        print('w:', lr.coef_, 'b:', lr.intercept_)
        # 输出评价指标
        print('MSE:', mean_squared_error(test_y, y_pred))
        print('MAE:', mean_absolute_error(test_y, y_pred))
        print('R2_Squared:', r2_score(test_y, y_pred))
    
        # 显示
        plt.scatter(test_x, test_y, color='black')
        plt.plot(test_x, y_pred, color='blue', linewidth=3)
        plt.show()
    
    
    if __name__=='__main__':
        model()
        sklearn_linearmodel()
    

    在这里插入图片描述

    展开全文
  • 在统计学中,普通最小二乘法(Ordinary Least Squares,OLS)是一种用于在线性回归模型中估计未知参数的线性最小二乘法。 OLS通过最小二乘法原则选择一组解释变量的线性函数的参数:最小化给定数据集中观察到的因...
  • 今天小编就为大家分享一篇Python 普通最小二乘法(OLS)进行多项式拟合的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 线性模型 – 普通最小二乘法 广义线性模型 目标值 y 是输入变量 x 的线性组合 如果 y^\hat{y}y^​ 是预测值,那么有: y^(w,x)=w0+w1x1+…+wpxp\hat{y}(w, x) = w_0 + w_1 x_1 + … + w_p x_py^​(w,x)=w0​+w1​x1...
  • 普通最小二乘法 (正规方程组) 拟合一个带有系数的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的残差平方和最小。数学表达式: LinearRegression会调用fit方法来拟合数组 X, y,并且将线性模型...
  • 自己编写的普通最小二乘法VB类库!配合矩阵类库一起使用,已经过测试,运行无误!如有疑问请留言!
  • 普通最小二乘法sklearn.linear_model.LinearRegression 普通最小二乘法 sklearn.linear_model.LinearRegression class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, ...
  • matlab ols代码活动子空间 使用普通最小二乘法 (OLS) 进行活动子空间分析的 Matlab 代码
  • python计算皮尔逊pearson相关系数|普通最小二乘法(OLS)进行多项式拟合
  • 广义线性回归模型: 把作为系数向量(coef_);把作为截距(intercept_...普通最小二乘法(Ordinary Least Squares) 线性回归的目的就是是的预测值与实际值的残差平方和最小: import matplotlib.pyplot as plt ...
  • 普通最小二乘法回归 回归 - 已有数据 数据集:Cal_housing.csv 简 介:从 1990 年至今,美国加州所有街区人口普查的信息,关于 9 组变量,共 20640 个观测值。 Variables Bols tols ...
  • UA STAT687 线性模型II 最小二乘理论1 普通最小二乘法参数的OLS估计可估函数与Gauss-Markov定理方差的OLS估计正态线性模型与UMVUE Legendre与Gauss在19世纪初提出了最小二乘的思想,1900年Markov证明了最小二乘估计...
  • 文章目录线性模型普通最小二乘法非负最小二乘法普通最小二乘复杂度 线性模型 以下是一组用于回归的方法,其中目标值预期为特征的线性组合。在数学表示法中,如果y^\hat{y}y^​是预测值: y^(w,x)=w0+w1x1+...+wpxp...
  • 普通最小二乘法 线性回归用来拟合带有系数的线性模型,目的是最小化数据集中的原始数据与通过线性近似预测的数据之间的平方和的残差。 数学上它解决了形式的问题: 线性回归将采用其fit方法拟合数组X,y,...
  • 线性回归模型 这是用Python编码的线性回归模型,可用于处理2D数据集的普通最小二乘法
  • 线性模型 - 普通最小二乘法 广义线性模型 目标值 y 是输入变量 x 的线性组合 如果 y^\hat{y}y^​ 是预测值,那么有: y^(w,x)=w0+w1x1+...+wpxp\hat{y}(w, x) = w_0 + w_1 x_1 + ... + w_p x_py^​(w,x)=w0​+w1​...
  • 相关内容连接: 机器学习:Python中如何使用最小二乘法(以下简称文一) 机器学习:形如抛物线的散点图在python和R中的...并且多项式回归和普通最小二乘法联系比较紧密,所以也放到此处讲了。 1.普通最小二乘法 1...
  • 普通最小二乘法(OLS)

    千次阅读 2016-12-10 09:04:15
    最小二乘法公式推导过程
  • 机器学习 基于sklearn-02 从sklearn说起线性回归普通最小二乘法案例分析 线性回归 回归分析的主要工作,是根据统计获得的数据点来训练出一个函数表达式,根据这个函数表达式来对新的数据点进行预测。 线性是指线性...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 497
精华内容 198
关键字:

普通最小二乘法