1.1 多维特征
如果不仅知道房间的大小,还知道卧室的数量等等特征,那么我们就会引出多元线性回归。
如下图中的x1 x2 x3等可能代表一个特征,比如为厕所的个数等等,下面的80可能代表房屋的低价。我们可以用一个向量来代表不同参数前面的w,一个向量x来代表各个参数。
1.2 向量化
np.dot函数
1.4 用于多元线性回归的梯度下降
下图为之前的形式与向量化后的形式对比。
下面的黄色框里是偏导数
可见,梯度下降是最小化成本函数J来快速确定w和b的方法。
对于线性回归,有一种方法:正规方程法,他不需要迭代就可以确定w和b。
如上图所示,正规方程法有一些劣势,他不能推广到其他的算法中,当特点数很多的时候也会运行的较慢。正规方程可能被用于线性回归的库中,梯度下降仍然被推荐使用确定参数w和b。
2.1 特征缩放
当你有一些特征他的值可能变化范围很大,他可能导致梯度下降运行缓慢,我们可以进行特征缩放,加快迭代速度。
第一种缩放:除以最大值
第二种缩放:均值归一化
求出训练集中每个特征的均值,然后进行均值归一化,具体计算如下图
第三种缩放:Z-score缩放(要首先计算标准差)
具体情况具体分析,当范围不合适时可以进行重新缩放,重新缩放不会影响结果。
2.3 判断梯度下降是否收敛
如上图所示,如果梯度下降正常运行时,代价函数J应逐渐下降最后趋于平缓,接近最小值。
如上图所示,当同步更新w和b100次时,j还是会继续下降。。。。也可以按照右侧的判断是否收敛(运行正确),当一次迭代后J下降小于10的-3次幂,就可以认为是收敛了。这个epsilon时可以人为设定的。
2.4 如何设置学习率
如果太小迭代太慢,如果太大,无法正常工作。
如上图,左上表示的是当α过大时,随着迭代次数的增加,J呈震荡,可能不收敛;右上表示的是一种错误的梯度下降,可能是代码中存在错误,因为,当,为了判断是否是代码中存在错误,我们可以选定一个非常小的学习率,如果在这种情况下,j的变化曲线仍是上图右侧的样子,那么我们可以确定是代码中出现了错误。、
可以采用上图的方式,选择出合适的α值。
2.5 特征工程
在下图中,你可能发现房屋面积更能拟合价格,所以一般可以通过对原始特征的转换或者拟合来进行特征工程,取得模型更好的拟合效果。
2.6多项式回归