Coursera机器学习2

Multivariate Linear Regression

Gradient Descent in Practice I - Feature Scaling 特征缩放

The objective of linear regression is to minimize the cost function
J(θ) = 1
2m
Xm
i=1

hθ(x
(i)
) − y
(i)
2
where the hypothesis hθ(x) is given by the linear model
hθ(x) = θ
T x = θ0 + θ1x1

why?

因为多个特征的时候,代价函数图形可能非常的”偏斜”
ML2.1FeatureScaling
梯度下降在一个漫长的斜坡上来回波动 下降很慢
所以要划分到一个相近的范围里来做, 下降就会很快。

how?

  • Feature Scaling特征缩放:
    每个值除以范围 得到-1 - +1 以内数字 最好
    -3 +3 以内可以接受 -1/3 +1/3 也可 太小 或太大就不行 要靠经验 看实验结果

  • Mean normalization均值归一化
    每个值减去平均值再除以(最大值减去最小值)

Gradient Descent in Practice II - Learning Rate 学习率 (步长)

try 0.001 0.003 0.01 0.03 0.1 1 …
画出横坐标迭代次数 纵坐标代价函数值的图形 观察
ML2.1LearningRate

这还真是显而易见的方法啊。。。

Features and Polynomial Regression

  • 特征选择:
    具体问题具体分析 房价 房子的长宽就可以合成面积特征

  • 多项式回归:
    ML2.1PolynomialRegression

Computing Parameters Analytically

Normal Equation 正规方程

why?

  • 一次性求解Θ的最优值
  • 不需特征缩放->不要忘记特征缩放需要做是因为梯度下降那个坡太漫长,会坡上来回波动 下降很慢
    what?
    理解:
    Θ是个实数 即可以简化代价函数J(Θ)是个二次函数(开口显然向上啊) 那么求什么时候二次函数有最小值呢 Θ = A/2B
    或者三次 四次函数 那么求导 导数为零的点就是Θ值

Θ是个N+1维的向量怎么办?
ML2.2NormalEquation1.png
理论上 微积分 从Θ0 到 Θn 一直求偏导 都让偏导数得零 那么就能求出多维向量Θ
但是这样太复杂了

所以有一个公式:
ML2.2NormalEquation2.1.png
ML2.2NormalEquation2.2.png
公式推导
ML2.2NormalEquation3.png

怎样选择梯度下降还是正规方程?

梯度下降需要选择步长 这需要多次尝试 还需要多次迭代 这需要时间
但是特征种类数目很多的时候也能正常运行

而正规方程需要计算矩阵转置乘以矩阵再求逆, n*n矩阵运算 O(N^3) n很大的时候就会很慢

Normal Equation Noninvertibility 不可逆性

即讲什么呢? 就是说有的矩阵可以求逆运算有的不行
Octave里面有两个求逆运算的函数 pinv 和inv
pinv可以求出伪值 即不可逆矩阵也能算