目录
1、多元线性回归模型
上周我们学习了单特征线性回归模型,但通常情况我们会有多个特征作为模型的输入,
1、一些基本概念
n: 特征的总数
:表示第 i 个样例
: 为第 j 个特征
:表示第 i 个样例中的第 j 个特征。
2、多个特征的线性回归模型被称为多元线性回归模型:
2、向量化
numpy的dot函数通过计算机硬件实现向量化。使用向量化时,使用专门的硬件一次得到 w 和 x 的所有值,并行地将每对 w 和 x 相乘,然后一次性取出16个结果,使用专门的硬件高效地相加。常用于大型数据集上的运算。
3、向量化改善多元线性回归的梯度下降法
1、向量化前后:模型、代价函数、梯度下降的对比
4、特征缩放
能让梯度下降运行得更快。当一个特征的取值范围很大时,一个好的模型更有可能学会选择一个相对较小的参数值;同样,当特征值的取值范围很小时,它对应的参数会比较大
1、特征大小、参数大小以及梯度下降之间的关系
在 Features 图中,散点在水平轴的分布范围比在垂直轴的分布范围更大,这是因为 x1 的取值范围比 x2 更大。
在 Parameters 图中,水平轴的分布范围比在垂直轴的分布范围更小,这是因为 w1 的一个非常小的变化都会对估计价格和代价函数产生非常大的影响,而 w2 需要很大的变化才会很大程度地改变估计价格。运行梯度下降时,可能会来回弹跳很长一段时间,才能找到最终通往最低点地道路。
2、特征缩放实现
方法一:所有特征 / 其对应的最大值
方法二:均值归一化:(所有特征 - 特征平均值)/ 特征的取值范围(即最大值减最小值)
方法三:Z-score 归一化,所有特征减去特征平均值除以特征标准差
5、判断梯度下降是否收敛
代价函数值在每次迭代都会下降的,如果在某一次迭代后代价函数值增加,这意味着学习率 α 选择不当或代码中存在错误。
不同的程序梯度下降算法收敛需要的迭代次数是不同的。
6、学习率的选择
目标:找到一个下降速度最快且始终保持下降的学习率。
注意:先将 α 设置得非常小只是调试方法,但不会是一个最有效的学习率选择。
7、特征工程
所谓特征工程,就是根据你的直觉,通过变换或组合原始特征来设计新的特征,以使学习算法更容易做出准确的预测。特征的选择会对算法的性能产生巨大影响。
8、多项式回归
多项式回归,可以让我们拟合曲线,也就是非线性函数。
9、正规方程(线性回归中另一种求w、b的方法)
使用一个高级线性代数库,无需迭代即可在一个目标中求解 w 和 b。正规方程方法一般不需要自己实现,通常在实现线性回归的机器学习库函数中实现。
缺点:只适用于线性回归,没有推广到其他学习算法;如果特征数量很多(大于10000),正规方程方法很慢。