机器学习入门笔记(二)----线性回归

1. 目标 : 找到使代价函数最小的函数h。

2. 代价函数:cost function,J。

  • 平方误差代价函数:
  • ...
3. 梯度下降法:将代价函数J取值最小化。
  • 定义:
  • α:速率、步长。太小导致速度慢。太大,导致不能收敛、甚至发散。
  • 常规做法:θ同步更新。
  • 导数:为正时:θ减小;为负时:θ增加;越接近局部最优解时,导数绝对值越小,修正幅度越小。
  • 步骤:重复,直到收敛。步长a后面是函数J对θ0与θ1对偏导。机器学习入门笔记(二)----线性回归_第1张图片
  • θ1公式求导过程:机器学习入门笔记(二)----线性回归_第2张图片
4. 多元线性回归:
  • 机器学习入门笔记(二)----线性回归_第3张图片
  • 定义x0 = 1,X与θ均为n维向量。假设函数h,可以简化表示为θ的转置 * X。
  • 样本中,上标表示样本的索引。下标表示样本中特征的索引。
  • 算法:机器学习入门笔记(二)----线性回归_第4张图片
5. 特征缩放:
  • 当不能特征的取值范围相差较大时,梯度下降过程会很缓慢。将特征进行缩放处理,使取值范围尽可能接近,将加快梯度下降过程。
  • 缩放结果过大过小都不好。一般处理到-1 到 1或 -0.5 到0.5。
  • 一般的处理办法:xi = {xi - x(平均)} / x取值范围。
  • 也可以将分母替换为,标准差。
6. 实用技巧:
  • 在线性回归算法运行时,画出随迭代次数增加,代价函数J对变化图,可以:机器学习入门笔记(二)----线性回归_第5张图片
  1. 提早对验证出部分算法错误。
  2. 观察J函数值是否已经收敛
  • 如果J随着迭代次数增加,反而上升。一般情况下随因为初始值离局部最优解较为接近,但步长a过大,导致越走越远。第二张图的震荡情况,通常也是如此。机器学习入门笔记(二)----线性回归_第6张图片
7. 多项式回归:
  • 为了更好的拟合数据,可以不只是用直线,可以用多项式。
  • 适当的选择特征,得到更好的效果。例如下图是房价随面积的数据图。显然直线不能很好的拟合数据。选取特征x^2
的二次函数可以拟合,但是主观判断下,二次函数会随着面积增加,最终下降,如蓝线。这是不符合预期的。
选取sqrt(x)特征的多项式,图像可以拟合数据且更合适。
机器学习入门笔记(二)----线性回归_第7张图片
8. 线性回归的另一个求解方法: 方程求解法.
例如对于一个简单的一元代价函数:J = a θ^2 + bθ + c. 直接求导=0,即可解出使函数最小的解θ.
对于多元的代价函数,即 θ为n维向量的情况,可以分别对向量中的每个θ求偏导=0的解.组合起来,即是使J最小的解向量.
但是这种求解方法太麻烦,给出一个矩阵求解公式:
机器学习入门笔记(二)----线性回归_第8张图片
9. 关于梯度下降法与方程求解法的选择:
优缺点 : 
1.梯度下降法需要选择步长a. 这是额外的工作量.
2.梯度下降法需要多次的迭代.
3.梯度下降法大概是O(n^2)复杂度,而方程法需要求解逆矩阵,约O(n^3)复杂度.
所以当n较小时,方程法是比较好的直接求解方法.当时n很大时,方程法将会很慢,梯度下降法会更为合适.
这个界限很难界定, 通常可能参考的特征数量为10000.
在以后将会学习到的其他问题中, 许多无法通过方程法直接求解, 所以梯度下降法将会是个后面常用的方法.
10. 在Octave中,使用pinv计算逆矩阵,而不是inv.因为pinv在矩阵不可逆的情况下,也会计算出一个值.不可逆的原因,可能是:
  • 特质之间存在直接关系,导致线性相关
  • 样本数量小于特征数量.

你可能感兴趣的:(数据科学)