zoukankan      html  css  js  c++  java
  • 机器学习实战笔记-8-回归

    回归

    线性回归

    (mathbf{x}^{mathbf{T}})向量第一列全为1,即(x_{0} = 1),这样(x_{0}w_{0})代表的是截距,(x_{1}w_{1})是斜率:

    设回归方程(y_{i}^{'} =mathbf{x}_{mathbf{i}}^{T}mathbf{omega}),则回归的评价指标:误差的平方和(sum_{i = 1}^{m}left( y_{i} - mathbf{x}_{i}^{T}mathbf{omega} ight)^{2})

    写作矩阵形式:

    回归方程为(mathbf{y}' = Xmathbf{omega}),其中(mathbf{y}')(m imes 1)(X)(m imes n),误差的平方和(delta = left( mathbf{y}Xmathbf{omega} ight)^{T}(mathbf{y} - Xmathbf{omega}))

    (frac{partialdelta}{partialmathbf{omega}} = - X^{T}mathbf{y+}X^{T}Xmathbf{omega}mathbf{= 0}),得到回归系数为(mathbf{omega} =left( mathbf{X}^{T}mathbf{X} ight)^{- 1}mathbf{X}^{T}mathbf{y})
    用相关系数corrcoef(yHat.T,yMat)可以计算得到相关系数,即拟合指标。

    局部加权线性回归

    使用“核”给预测点附近每个点赋予更高的权重,即(wleft( i,i ight) = expleft( frac{left| x_{i} - x ight|}{- 2k^{2}} ight))。则回归系数

    [mathbf{omega}mathbf{=}left( mathbf{X}^{T}mathbf{ ext{WX}} ight)^{mathbf{- 1}}mathbf{X}^{T}mathbf{ ext{Wy}} ]

    其中(mathbf{W})(wleft( i,i ight))形成的矩阵。

    • (k)越小,预测点附近的点权重越大,越看重细节。易造成过拟合。过拟合的误差(sum_{i = 1}^{m}left( y_{i} - y_{i}^{'} ight)^{2})较小。但预测新数据的效果未必越好。

    • (k)越大,预测点附近的点权重越平均,越看重整体。(k = 1)时基本与简单线性回归一样了。

    缩减系数之岭回归

    如果上述训练集的特征比样本点数多(n>m),输入数据的矩阵不是满秩矩阵,求逆会出现问题。作以下修正即可(其中(mathbf{I})大小为m*m):

    ( mathbf{omega} = left( mathbf{X}^{T}mathbf{X}mathbf{+}lambdamathbf{I} ight)^{- 1}mathbf{X}^{T}mathbf{y} )

    数据获取之后,首先抽取部分用于测试,其余用于训练出参数(mathbf{omega}),训练完毕后在测试集上测试性能,选取不同的(mathbf{lambda})重复上述过程,得到使预测误差最小的(mathbf{lambda})

    可知,(lambda)越小(越接近0),各系数与普通回归一样;随着(lambda)不断增大,系数全部缩减为0。取中间的值可以得到最好的预测效果。

    该方法等效于 普通线性回归+约束:(sum_{k = 1}^{n}{omega_{k}^{2} leqlambda})

    图、 回归系数与(lambda)的关系

    1. 缩减系数之前向逐步回归:属于贪心算法(每一步都尽可能减小误差)

    算法伪代码:每次迭代更改w(中一个特征的一个小值),以得到做这样改动的最优解。

    数据标准化(满足0均值和单位方差:数据减去均值后处以方差)
    for 每轮迭代:
      设置最前最小误差lowestError为正无穷
      对每个特征:
        增大或缩小一个系数得到新的w
          计算新w下的误差
          如果误差Error小于lowestError:设置WBest为当前w
      将WBset设置为新的w
    

    缩减系数的目的在于:“理解”特征对回归的作用。


    关于矩阵求导:其中(mathbf{x,eta})均为列向量。

    ( frac{partialmathbf{eta}^{T}mathbf{x}}{partialmathbf{x}} = frac{partialmathbf{x}^{T}mathbf{eta}}{partialmathbf{x}} = mathbf{eta}() )

    ( frac{partialmathbf{x}^{T}mathbf{x}}{partialmathbf{x}} = 2mathbf{x}() )

    ( frac{partialmathbf{x}^{T}mathbf{A}mathbf{x}}{partialmathbf{x}} = frac{partialmathbf{x}^{T}mathbf{A}^{T}mathbf{x}}{partialmathbf{x}} = frac{partial(mathbf{x}^{T}mathbf{)}mathbf{A}mathbf{x}}{partialmathbf{x}}mathbf{+}frac{partialmathbf{x}^{T}mathbf{A}mathbf{(x)}}{partialmathbf{x}} = frac{partial(mathbf{x}^{T}mathbf{A}mathbf{)x}}{partialmathbf{x}}mathbf{+}frac{partialmathbf{x}^{T}mathbf{(}mathbf{A}mathbf{x)}}{partialmathbf{x}} = mathbf{A}^{T}mathbf{x} + mathbf{Ax =}left( mathbf{A}^{mathbf{T}}mathbf{+ A} ight)mathbf{x} )

  • 相关阅读:
    [luoguP1098] 字符串的展开(模拟)
    [luoguP1033] 自由落体(模拟?)
    [luoguP1011] 车站(递推)
    [luoguP1097] 统计数字(水)
    [luoguP2672] 推销员(贪心 + 树状数组 + 优先队列)
    [luoguP1043] 数字游戏(DP)
    [luoguP1058] 立体图(超级大模拟(¬︿̫̿¬☆))
    [luoguP1021] 邮票面值设计(DFS + dp)
    POJ 2184 Cow Exhibition (带负值的01背包)
    POJ 2392 Space Elevator (DP)
  • 原文地址:https://www.cnblogs.com/charleechan/p/11434765.html
Copyright © 2011-2022 走看看