(My notes)Linear Regression

1.Gradient Descent

Here is a plot of error function in 2 dimensions (allow higher dimensions). The weights on the x-axis and the error on the y-axis.

The derivative or gradient of the error function with respect to the weights, is going to a direction where the function increases the most.Therefore,the negative of this gradient is going to point down in the direction where the function decreases the most.

\omega_{i}\rightarrow \omega_{i} - \alpha \frac{\partial }{\partial \omega_{i}}Error

2.Error Function

The two most common error functions for linear regression:

  • mean absolute error

Error = \frac{1}{m}\sum_{i=1}^{m}|y - \hat{y}|

  • mean square error

Error = \frac{1}{2m}\sum_{i=1}^{m}(y - \hat{y})^{2}

3.批量梯度下降和随机梯度下降

两种线性回归方法:

  • 逐个地在每个数据点应用均方(或绝对)误差,并重复这一流程很多次。
  • 同时在每个数据点应用均方(或绝对)误差,并重复这一流程很多次。

具体而言,向数据点应用均方(或绝对)误差时,就会获得可以与模型权重相加的值。我们可以加上这些值,更新权重,然后在下个数据点应用均方(或绝对)误差。或者同时对所有点计算这些值,加上它们,然后使用这些值的和更新权重。

后者第二种方法叫做批量梯度下降法。前者第一种方法叫做随机梯度下降法

实际上,在大部分情况下,两种都不用。思考以下情形:如果你的数据十分庞大,两种方法的计算速度都将会很缓慢。线性回归的最佳方式是将数据拆分成很多小批次。每个批次都大概具有相同数量的数据点。然后使用每个批次更新权重。这种方法叫做小批次梯度下降法。(Mini-batch)

之后补充公式。

4.Higher dimension

n-1 dimension hyperplane

\hat{y} = \omega _{1}x_{1}+\omega _{2}x_{2}+...+\omega _{n-1}x_{n-1}+\omega _{n}

In the picture above,n-1 = 2.(2 dimension hyperplane)

5.为何不解方程组而选择梯度下降

如下图,解二维方程组求出使得误差函数E(w1,w2)最小的w1,w2.

但若wn不止w1,w2,而是有w1,w2,...,wn。将有n维方差组(或更多),n个未知数。

而n增大则计算量增大,尤其涉及到矩阵求逆,影响求解速度。所以选用梯度下降。

解n维矩阵之后上传。

6.线性回归注意异常值影响直线的拟合结果

线性回归的目标是求取对训练数据而言的 “最优拟合” 直线。如果数据集中存在不符合总体规律的异常值,最终结果将会存在不小偏差。如下图。

7.polynomial regression

同样用梯度下降法求使得误差函数最小的参数,去拟合数据点。

多项式回归是线性回归的一种。

回归函数是回归变量多项式的回归,回归函数关于回归系数是线性的。“由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用”。

8.正则化

适用于回归问题和分类问题。

  • L1 Regularization:

J=J_{0}+\alpha \sum_{w} |w|

  • L2 Regularization:

J=J_{0}+\alpha \sum_{w} w^{2}

更多L1和L2范数参考这篇博客

9.特征缩放

特征缩放是把数据 (各个特征) 变换到同一个尺度。两种常见的缩放方法:

  1. 标准化
  2. 归一化

标准化是对列中的每个值减去均值后再除以方差,即数据被转换为均值为0,标准差为1。Python中创建一个标准化的高度(假设在 df 中有一列叫 height):

df["height_standard"] = (df["height"] - df["height"].mean()) / df["height"].std()

创建一个新的 "标准化" 列 值可解释为,原高度与平均高度之间相差多少个标准差。

归一化将数据压缩到0和1之间。Python 语句归一化数据:

df["height_normal"] = (df["height"] - df["height"].min()) /     \
                      (df["height"].max() - df['height'].min())

10.什么时候做特征缩放

在许多机器学习算法中,数据缩放对预测结果的影响很大。尤其是在以下两个具体案例中:

  1. 使用基于距离的特征做预测
  2. 加入正则化

1.基于距离的特征

基于距离点的监督学习技术支持向量机 (SVMs)和基于距离的方法k近邻算法 (也称 k-nn)。当使用两种技术中的任何一种时,如果不对数据做特征缩放,可能会导致完全不同(也可能会误导)的预测结果。

因此,用这些基于距离的技术做预测时,必须先进行特征缩放

2.正则化

当在模型中使用正则化时,需要做特征缩放。特征的尺度对正则化线性回归技术中,正则化对特定系数的惩罚的影响很大。若一个特征的取值区间是从0 到10,而另一个特征的取值区间是 0 到1000000, 不做特征缩放预处理,就应用正则化将不公平地惩罚小尺度的特征。相比大尺度特征,小尺度特征需要用更大的系数,才能对结果产生相同的影响。因此,在两个特征的净误差的增量相同情况下,正则化会删除那个系数大的小尺度特征,因为这将最大程度地减少正则化项。

这再次说明,正则化前要先做特征缩放

另,特征缩放可以加快机器学习算法的收敛速度,这是扩展机器学习应用的一个重要的考虑因素。

正则化 能确保模型不仅训练误差小,而且测试误差也小 (泛化好)。

关于更详细数据特征缩放详见这篇博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值