线性回归小总结

 

  1. 代价函数(Cost Function)

代价函数是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

在线性回归中,最常用的是均方误差。

对于

hx=θTx=θ0x0+θ1x1+⋯+θnxn

其中x0=1

 

给定m个属性集x=x1;x2;⋯;xn线性回归基于均方误差的代价函数为:

Jθ0,θ1,…,θn=12mi=1mhxi-yi2

m:训练样本的个数;

n:样本属性个数(有n个属性,就应有多少个θ)

扫描二维码关注公众号,回复: 4719440 查看本文章

h(x):用参数θ和x预测出来的y值;

y:原训练样本中的y值,也就是标准答案;

下标(i):第i个样本;

 

  1. 损失函数(Loss Function)

损失函数是用来估量模型的预测值h(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, h(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。所以从作用上来看,代价函数和损失函数是同一个东西。

  1. 过拟合(Overfitting)

过拟合现象是指在拟合一个统计模型时,使用了过多的参数。当一个模型足够复杂的时候,可以完美地适应数据,但这会减少或破坏模型一般化的能力。

 

  1. 泛化能力(Generalization Ability)

在机器学习方法中,泛化能力通俗来讲就是指学习到的模型对未知数据的预测能力。在实际情况中,通常通过测试误差来评价学习方法的泛化能力

 

  1. 正则化(Regularization)

正则化在本质上是为了防止过拟合, 进而增强泛化能力。

 

  1. 目标函数(Object Function)

目标函数定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。

线性模型的目标函数通常可以表示成如下式子:

Jθ0,θ1,…,θn= 12mi=1mhxi-yi2i=1nθj2

 

 

  1. 评价函数

R方(R-Square)

R方通常用来描述数据对模型的拟合程度的好坏。

公式为:

R2=1-i=1myi-yi2i=1myi-y2

模型的决定系数(Determinate Coefficient) 等于复相关系数的平方。与简单线性回归中的决定系数相类似,它表示反应变量y 的总变异中可由回归模型中自变量解释的部分所占的比例,是衡量所建立模型效果好坏的指标之一。显然,R2越大越好,但是也存在与复相关系数一样的不足,即使向模型中增加的变量没有统计学意义,值仍会增大。

 

修正R方(Adjusted R-Squared)

Radj2=1-m-11-R2m-n-1

          其中m是样本数量,n是模型中变量的个数。

由于用R2 评价拟合模型的好坏具有一定的局限性,即使向模型中增加的变量没有统计学意义,R2 值仍会增大。因此需对其进行校正,从而形成了校正的决定系数(Adjusted R Square) 。与R2不同的是,当模型中增加的变量没有统计学意义时,校正决定系数会减小,因此校正R2 是衡量所建模型好坏的重要指标之一,校正R2 越大,模型拟合得越好。但当p/n 很小时,如小于0.05 时,校正作用趋于消失。

 

MSE/MAE

 

均方误差(MSE)是回归损失函数中最常用的误差,它是预测值与目标值之间差值的平方和,其公式为:

MSE=i=1mhxi-yiP2m

其中 yiP为真实值;

hxi是预测值;

 

平均绝对误差(MAE)是另一种常用的回归损失函数,它是目标值与预测值之差绝对值的和,表示了预测值的平均误差幅度,而不需要考虑误差的方向(注:平均偏差误差MBE则是考虑的方向的误差,是残差的和),范围是0到∞,其公式为:

MAE=i=1mhxi-yiPm

显然均方差更容易求解,但平均绝对误差则对于异常值更稳健。

        

线性回归的原理

线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。给定的数据集学得一个通过属性的线性组合来进行的预测函数

hθx=θTx

 

损失函数推导

MSE=i=1mhxi-yiP2n

MAE=i=1mhxi-yiPm

        

损失函数求解

         首先考虑 n = 1 的情况,即一元线性回归

给定属性集x=x1;x2;⋯;xm,试图学得:hxi=θ0+θ1xi 使得:hxi≅yi 

西瓜书中采用了MSE衡量 hxi、yi之间的差别。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。

令Jθ0,θ1=i=1myi-θ1x-θ02,使Jθ0,θ1最小化的过程,称为线性回归模型的最小二乘”参数估计”。(m是属性数目,n是数据数目)

分别对θ1、θ0分别求导有:

∂Jθ0,θ1∂θ1=2θ1i=1mxi2-i=1myi-θ0xi

∂Jθ0,θ1∂θ0=2mθ0-i=1myi-θ1xi

令两式分别为零,可得:

θ1=i=1myixi-xi=1mxi2-1mi=1mxi2

θ0=1mi=1myi-θ1xi

                 

                  正则线性回归

                  给定m个属性集x=x1;x2;⋯;xn,试图学得:hxi=θTx=θ0x0+θ1x1+⋯+θnxn ,其中x0=1。使得:hxi≅yi

Jθ0,θ1,…,θn= 12mi=1mhxi-yi2i=1nθj2

则采用梯度下降:

θj≔θj-α∂∂θjJθ0,θ1,…,θn

θj≔θj-α1mi=1mhxi-yixij+λmθj

(j=0,1,…n)

定义一个合理的阈值,两次迭代之间的差值小于该阈值时,迭代结束。

 

逻辑回归

逻辑回归(Logistic Regression, LR)模型其实在线性回归的基础上,套用了一个逻辑函数,sigmod函数,得到:

y=11+ⅇ-θTx

变化为:

lny1-y=θTx

         又因为:

lnPy=1xPy=0x=θTx

         解得:

py=1x=ⅇθTx1+ⅇθTx

py=0x=11+ⅇθTx

对其求极大对数似然函数即可得θT

 

sklearn参数详解

from sklearn.linear_model import LinearRegression

linear = LinearRegression()

linear.fit(X, y) #fit函数,拟合线性模型。其中X,y分别为训练数据的特征和标签。

linear.predict(y_new) #predict函数,用线性模型来进行预测。

 

 

from sklearn.linear_model import LogisticRegression

log_reg = LogisticRegression()

log_reg.fit(X, y)

log_reg.predict(y_new)

实际上这篇东西我用word文档整理的,但是发布出来,只好直接复制过来。

猜你喜欢

转载自blog.csdn.net/weixin_41169182/article/details/84938659