多维特征
对于一个线性回归来说,可能涉及的参数往往不止一个。
利用房价模型的例子,我们可能会用到房子的面积、房间数量、建造时间等多个特征来预测房价。
多维特征的表示
在多维特征的情况下,我们有以下表示方法
\(n\):特征的数量
\(x^{(i)}\):第\(i\)个训练样本,即特征矩阵的第\(i\)行,是一个向量
\(x^{(i)}_j\):第\(i\)个训练样本的第\(j\)个特征,即特征矩阵的第\(i\)行第\(j\)列,是一个实数
多维特征的假设函数
对于多维特征的情况,我们的假设函数可以表示为
\[h_\theta(x) = \theta_0 + \theta_1x_1 + \theta_2x_2 + \cdots + \theta_nx_n \]或写作
\[h_\theta(x) = \theta^Tx \]其中,\(x_0 = 1\),\(\theta_0\)是偏置项。
多变量梯度下降
算法目标
对于多维特征的情况,我们的目标是找到一组参数\(\theta\),使得代价函数\(J(\theta)\)最小。
算法描述
多变量梯度下降算法描述如下:
原始形式:
带入代价函数:
\[\theta_j := \theta_j - \alpha\frac{1}{2m}\frac{\partial}{\partial \theta_j}\sum_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})^2 \]求导后:
\[\theta_j := \theta_j - \alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)} \]梯度下降法的实践
特征缩放
在多维特征的情况下,我们需要对特征进行缩放,使得各个特征的取值范围相近,这样可以加快梯度下降的收敛速度。
在房屋价格的例子中,尺寸的取值范围可能是100-2000平方英尺,而卧室数量的取值范围可能是1-5间,绘制出的代价函数图像可能是一个很扁的碗状图,这样梯度下降的收敛速度会很慢。
特征缩放的方法
以特征值\(x_1\)为例,设\(x_1\)的取值范围为300-2000,可以使用的特征缩放方法有以下几种:
- 将特征值除以最大值,使得特征值的范围在0-1之间
- 均值归一化,将特征值减去均值,再除以最大值与最小值的差,使得特征值的范围在-1到1之间
- Z-score归一化,将特征值减去均值,再除以标准差,使得特征值的范围在-1到1之间
\[x_1' = \frac{x_1 - \mu}{\sigma} \]标准差:\(\sigma = \sqrt{\frac{1}{m}\sum_{i=1}^m(x_i - \mu)^2}\)
学习率
收敛的判断
根据迭代次数和代价函数的值,可以绘制学习曲线。
如果梯度下降正确工作,则代价函数应该随着迭代次数的增加而减小,如果代价函数随着迭代次数的增加而增大,则可能是学习率\(\alpha\)过大导致的,此时需要减小学习率。
当代价函数的值几乎不再变化时,可以认为梯度下降已经收敛,此时可以停止迭代。
自动收敛
如果学习率\(\alpha\)设置得合理,梯度下降算法可以自动收敛,此时不需要手动设置迭代次数。
设置自动收敛的阈值\(\epsilon\),当两次迭代的代价函数的差值小于\(\epsilon\)时,认为梯度下降已经收敛,此时可以停止迭代。
通常\(\epsilon\)的取值为\(10^{-3}\)、\(10^{-6}\)或\(10^{-10}\)
学习率的选择
梯度下降算法中每次迭代受到学习率\(\alpha\)的影响:
- 如果\(\alpha\)过小,则梯度下降收敛速度很慢
- 如果\(\alpha\)过大,则梯度下降可能不会收敛,甚至会发散
常用的学习率包括:
0.01、0.03、0.1、0.3、1、3、10
通过尝试不同的学习率,可以选择出合适的学习率。
特征工程和多项式回归
特征工程
特征工程是机器学习中非常重要的一部分,特征工程是利用相关知识来设计新特征,通过变化或者组合原有特征,使得特征更加适合机器学习算法。
以房价预测为例,我们可以通过房屋面积的长和宽来计算房屋面积,这样可以得到一个新的特征,即房屋面积。
设房屋面积为\(x_1\),房间数量为\(x_2\),则
\[f_1 = w_1 x_1 + w_2 x_2 + b\\ x_3 = x_1 x_2\\ f_2 = w_1 x_1 + w_2 x_2 + w_3 x_3 + b \]多项式回归
在实际应用中,我们可能会遇到非线性的数据,此时可以使用多项式回归。
\[h_\theta(x) = \theta_0 + \theta_1x_1 + \theta_2x_2 + \theta_3x_1^2 + \theta_4x_2^2 + \theta_5x_1x_2 + \cdots \]需要注意的是,多项式回归中的特征缩放非常重要,如果不进行特征缩放,可能会导致梯度下降收敛速度很慢。
标签:机器,特征,梯度,回归,frac,参数,alpha,theta,收敛 From: https://www.cnblogs.com/agitm/p/17724019.html