线性回归简介和提示

引言

机器学习中的监督学习(Supervised Learning)依据目标(Target)变量的类型分为回归问题(Regression,目标变量为浮点数)和分类问题(Classification,目标变量为离散值)。

在遇到回归问题时,自然而然的就要想到简单的线性回归(Linear Regression)可不可以解决当前的问题。在选取了一些特征变量(Features)之后,我们可以通过组装更高幂次的项来模拟非线性的回归特性。

由于特定函数可以通过泰勒展开转化为多项式的形式(保留一定的精度),所以原则上可以通过此种方法模拟这类函数的非线性。

什么是泰勒展开?

泰勒(Taylor)中值定理 如果函数 f(x) 在含有 x0 的某个开区间 (a,b) 内具有直到 (n+1) 阶的导数,则对任一 x(a,b) ,有

f(x)=f(x0)+f(x0)(xx0)+f′′(x0)2!(xx0)2++f(n)(x0)n!(xx0)n+Rn(x)

其中
Rn(x)=f(n+1)(ξ)(n+1)!(xx0)n+1

这里 ξ x0 x 之间的某个数。Rn(x)称为拉格朗日(Lagrange)余项。

线性回归

线性回归是假设特征向量与目标变量有以下的假设关系(Hypothesis)

hθ(x)=i=0nθixi=θTx

θi 称为参数(Parameter)或权重(Weight),其中 x0 恒等于1,称为截距项(Intercept Term)。
依此,有
J(θ)=12i=1m(hθ(x(i))y(i))2

此为成本函数(Cost Function)。

线性回归解法

如何选取合适的 θ 使得成本函数尽可能的小?
主要有梯度下降法(Gradient Descent)和正规方程法(Normal Equation)。

梯度下降法

LMS(Least Mean Squares)更新法则或Widrow-Hoff学习法则

θj:=θj+α(y(i)hθ(x(i)))x(i)j

其中 α 为学习率(Learning Rate), (y(i)hθ(x(i))) 为误差项(Error Term)。

而基于应用LMS更新法则的方式不同,有两种使用方法:批处理梯度下降法(Batch Gradient Descent)和随机梯度下降法(Stochastic Gradient Descent,又名增量梯度下降法,Incremental Gradient Descent)。

批处理梯度下降法

重复以下更新法则直至收敛,

θj:=θjαθjJ(θ)=θj+αi=1m(y(i)hθ(x(i)))x(i)j(for every j)

随机梯度下降法

循环 {
 for i=1 to m {

θj:=θj+α(y(i)hθ(x(i)))x(i)j(for every j)

 }
}

一般来说,随机梯度法比批处理梯度法要更快收敛,这得益于随机梯度法每遇到一个训练用例时就进行相应的更新,而批处理梯度法需要费时费力的遍历所有训练用例后方可更新。尤其当训练用例数目急剧增长后,她们的差距便会变得更加明显。

正规方程法

把训练用例一行一行摆放进 X

X=(x(1))T(x(2))T(x(m))T

把对应的目标值放入 m 维向量中:
y=y(1)y(2)y(m)

则,

J(θ)=12i=1m(hθ(x(i))y(i))2=12(Xθy⃗ )T(Xθy⃗ )

求导可得:
θJ(θ)=XTXθXTy⃗ 

令其为零,可得正规方程式:
XTXθ=XTy⃗ 

解之可得:
θ=(XTX)1XTy⃗ 

这里 XRm×(n+1) m 个训练用例,n个特征。 y⃗ Rm

毋庸置疑,这里 XTX R(n+1)×m×Rm×(n+1) ,计算复杂度与训练用例数目, m ,相关。

XTXR(n+1)×(n+1) (XTX)1 的计算复杂度只与特征数目, n ,相关。

以上是不可避免的计算量,由于矩阵取逆的运算比较费时,当nm时,不宜使用此方法,而当 nm 时,可以使用此方法,并且比梯度下降更快。小编有个训练集大小 390625×10 ,用梯度下降法 1700s ,而正规方程式法仅仅 0.015002s (使用 θ=(XTX)1(XTy⃗ ) ,用原公式 0.075008s )。

工程实践经验

  1. 有时由于训练集合中使用的特征数目较少,导致Underfitting,这时小编会通过添加二次,三次甚至多次项的方法把特征数目人为增多;

  2. 但是这样的数据可能导致 X 矩阵的秩比较小,X成为或接近奇异的可能性较大,不能使用正规矩阵法直接求解,只能使用梯度下降法求解;

  3. 但如果原来的特征值不是都在1附近的话,新添加的特征值很可能变得很大或很小,这时直接用于训练的话,有些维度的导数过大或过小,导致结果不收敛,最后得到的 θ 向量也就没有了意义(最后的成本函数值可能很大);

  4. 这时可以使用正则化的方法把特征值变换至 0 附近,其实这就是把xN(μ,σ)变换成 x^=xμσN(0,1) 的方法(提示:不要对 X 的常数列(1,1,...1)T做正则化操作,否则你会得到一列 0⃗  ,最后的成本函数也不正确,可能看到的是一堆NaN);

  5. 使用梯度下降法时,由于这个是迭代的方法,初始值可以影响求解的时间,简单的把初始向量设为 0⃗  不见得好,如果可能的话,可以把初始向量设为在最终 θ 的附近,当然这个很难,不过我们可以选择随机的给出 θ 值(提示,一般伪随机数 rUniform(0,1) ,我们可以通过 r^=(ba)r+aUniform(a,b) 得到我们想要的数值范围内的随机数);

    初始值对一个非凹函数的求解关系很大(当然我们的线性回归是个凹函数),初始值可以使用其他简单模型求解得出,如一些二次型的函数既是凹函数又有矩阵解法,一般可以很快求得结果。把得出的初始值代入非凹函数,一般得到的结果质量会很好(不宜陷入局部解),运行时间也会有改进(迭代次数会减少)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SPSS中进行多元线性回归分析的一个实例可以是通过一个人的年龄、体重、心率和性别来预测其VO2 max(最大摄氧量)及其可信区间。在进行多元线性回归分析之前,我们需要进行散点图的绘制,以确保因变量与自变量之间存在线性趋势。如果发现因变量与某个自变量之间呈现非线性趋势,可以尝试进行变量转换来修正。变量转换后,需要重新绘制散点图以确保线性趋势仍然存在。\[1\] 多元线性回归的另一个作用是根据构建的回归模型来估计和预测因变量的值及其变化。在这个实例中,我们可以利用多元线性回归模型来预测一个人的VO2 max,并给出其可信区间。通过SPSS软件进行操作,可以得到相应的结果和输出。\[2\] 在多元线性回归的结果输出中,Coefficients表格显示了共线性诊断的两个统计量,即Tolerance(容忍度)和VIF(方差膨胀因子)。一般来说,如果Tolerance小于0.2或VIF大于10,则提示自变量之间可能存在多重共线性的问题。在这个实例中,各自变量的Tolerance均大于0.2,VIF均小于10,表明不存在共线性问题。\[3\] 因此,通过SPSS进行多元线性回归分析可以帮助我们预测一个人的VO2 max,并给出其可信区间。同时,通过共线性诊断可以判断自变量之间是否存在多重共线性的问题。 #### 引用[.reference_title] - *1* *2* *3* [多重线性回归的结果解读和报告(SPSS实例教程)](https://blog.csdn.net/weixin_35042546/article/details/112830558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值