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.
2.Error Function
The two most common error functions for linear regression:
- mean absolute error
- mean square error
3.批量梯度下降和随机梯度下降
两种线性回归方法:
- 逐个地在每个数据点应用均方(或绝对)误差,并重复这一流程很多次。
- 同时在每个数据点应用均方(或绝对)误差,并重复这一流程很多次。
具体而言,向数据点应用均方(或绝对)误差时,就会获得可以与模型权重相加的值。我们可以加上这些值,更新权重,然后在下个数据点应用均方(或绝对)误差。或者同时对所有点计算这些值,加上它们,然后使用这些值的和更新权重。
后者第二种方法叫做批量梯度下降法。前者第一种方法叫做随机梯度下降法。
实际上,在大部分情况下,两种都不用。思考以下情形:如果你的数据十分庞大,两种方法的计算速度都将会很缓慢。线性回归的最佳方式是将数据拆分成很多小批次。每个批次都大概具有相同数量的数据点。然后使用每个批次更新权重。这种方法叫做小批次梯度下降法。(Mini-batch)
之后补充公式。
4.Higher dimension
n-1 dimension hyperplane
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:
- L2 Regularization:
更多L1和L2范数参考这篇博客。
9.特征缩放
特征缩放是把数据 (各个特征) 变换到同一个尺度。两种常见的缩放方法:
- 标准化
- 归一化
标准化是对列中的每个值减去均值后再除以方差,即数据被转换为均值为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.基于距离的特征
基于距离点的监督学习技术支持向量机 (SVMs)和基于距离的方法k近邻算法 (也称 k-nn)。当使用两种技术中的任何一种时,如果不对数据做特征缩放,可能会导致完全不同(也可能会误导)的预测结果。
因此,用这些基于距离的技术做预测时,必须先进行特征缩放。
2.正则化
当在模型中使用正则化时,需要做特征缩放。特征的尺度对正则化线性回归技术中,正则化对特定系数的惩罚的影响很大。若一个特征的取值区间是从0 到10,而另一个特征的取值区间是 0 到1000000, 不做特征缩放预处理,就应用正则化将不公平地惩罚小尺度的特征。相比大尺度特征,小尺度特征需要用更大的系数,才能对结果产生相同的影响。因此,在两个特征的净误差的增量相同情况下,正则化会删除那个系数大的小尺度特征,因为这将最大程度地减少正则化项。
这再次说明,正则化前要先做特征缩放。
另,特征缩放可以加快机器学习算法的收敛速度,这是扩展机器学习应用的一个重要的考虑因素。
正则化 能确保模型不仅训练误差小,而且测试误差也小 (泛化好)。
关于更详细数据特征缩放详见这篇博客