吴恩达机器学习-第二周
学习视频参考b站:吴恩达机器学习
本文是参照视频学习的随手笔记,便于后续回顾。
多维特征(Multiple Features)
多种不同类型的输入X1,X2,X3......
模型
f(x)=w1x1 + w2x2 + w3x3 + w4x4 + b ,加了小箭头的是向量(Vector),可以不加,只是方便辨识
点积表示法:
符号表示
向量化(向量表示/use NumPy)
通过使用NumPy中的array数组和dot点积来优化代码
向量化和非向量化的区别
向量化平行(parallel)执行,非向量化一步一步执行,所以相比之下向量化效率高
迭代示例:
多元线性回归的梯度下降(Gradient Descent for Multiple Regression)
非向量化与向量化的对比:
正规方程(normal equation)
详解链接正规方程1、正规方程2
之前我们用梯度下降来求解线性回归问题的最优参数,除此之外我们还可以用正规方程法(Normal Equation)来求解其最优参数。
特征缩放(Feature Scaling)
范围大的特征值尽量选择小的参数w,范围小的特征值尽量选择大的参数w
范围小的特征值比范围大的特征值影响程度小(图比较扁)
特征缩放方法(如何让不同范围的特征值之间有可比较性)
除最大值法:
均值归一化(Mean normalization)
公式:(每一个特征值Xi-特征值平均值μi)/(最大值max-最小值min)
Z-score标准化(Z-score normalization)
公式:(每个特征值xi-特征值平均值μi)/标准差σi
特征值范围不是必须-1~1,只要不是太大或太小都可以
如何判断梯度下降是否收敛(Checking Gradient Descent for Convergence)
Method1:通过迭代次数和代价函数的图像变化判断,如果代价函数随着迭代次数增加而减少,那就是收敛的
Method2:设置一个阈值ε像是0.001,如果代价函数的值小于ε,自动判断为收敛
不同学习算法迭代次数有差异
如何选择合适的学习率
代价函数增大有两种原因:1.代码错误 2.学习率太大
判断原因:将学习率设置很小,如果还是增大,那就是代码错误
学习率太小会导致迭代次数增多,耗时!
可以参考选择下图来选择学习率,每次选择上一次学习率的大约三倍
特征工程(Feature Engineering)
示例:房屋价格
比如有两个参数来预测价格,长x1和宽x2,如果你觉得面积能更好预测房屋价格,就可以把面积x3=x1*x2加进去
可以通过变换或组合定义自己的特征!!!,可能会对模型预测有利
多项式回归(Polynomial Regression--曲线)
通过构造不同的函数来达到效果,像是二次函数会下降导致房屋大小变大,价格变低(不符合实际),可以选择三次函数或是取平方根,更好的构筑模型
Summary
本周学习了以下内容:
1.多维特征模型的定义和符号表示
2.代码向量化,向量化与非向量化的区别
3.多元线性回归的梯度下降
4.正规方程
5.特征缩放的三种方法
6.如何判断梯度下降收敛,如何选择合适的学习率,特征工程
7.多项式回归