机器学习第二周(上)

一、线性回归

1、多元线性回归

1.1、训练集

面积卧室数量层数年份价格
21045145460
14163240232
15343230315
8522136178

其中,
n = 4 n=4 n=4表示特征(面积\ 卧室数量 \ 层数 \ 年份)组数量。
x ( i ) x^{(i)} x(i)表示第 i i i个样本。
x j ( i ) x^{(i)}_j xj(i)表示第 i i i个样本的第 j j j个特征。

1.2、假设函数

假设训练集中的特征贴合以下函数:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\cdots+\theta_nx_n hθ(x)=θ0+θ1x1+θ2x2++θnxn

上述假设函数也可以用矩阵乘法表示,先令 x 0 = 1 x_0=1 x0=1,则输入变量 x x x和模型参数 θ \theta θ可表示为:
x → = [ x 0 x 1 x 2 ⋮ x n ] θ → = [ θ 0 θ 1 θ 2 ⋮ θ n ] \overrightarrow{x}= \begin{bmatrix} x_0 \\ x_1 \\ x_2 \\ \vdots \\ x_n \\ \end{bmatrix} \quad \overrightarrow{\theta}= \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \\ \end{bmatrix} x =x0x1x2xnθ =θ0θ1θ2θn
依据上式,有
h θ ( x ) = θ T x \quad h_\theta(x)=\theta^Tx hθ(x)=θTx

1.3、代价函数

根据上面提到的向量 θ → \overrightarrow{\theta} θ ,代价函数为:
J ( θ → ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\overrightarrow{\theta})=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 J(θ )=2m1i=1m(hθ(x(i))y(i))2

据上式,模型参数的迭代公式(梯度下降)为:
θ j : = θ j − α ∂ ∂ θ j J ( θ → ) ( f o r e v e r y j ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\overrightarrow{\theta})\quad(for\quad every\quad j) θj:=θjαθjJ(θ )(foreveryj)
将代价函数代入上式,可得:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) ( x j ( i ) ) ( f o r e v e r y j ) \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)}-y^{(i)}))(x^{(i)}_j)\quad(for\quad every\quad j) θj:=θjαm1i=1m(hθ(x(i)y(i)))(xj(i))(foreveryj)
PS: x 0 ( i ) = 1 ; j 为 0 至 n x^{(i)}_0=1;j为0至n x0(i)=1j0n

2、特征缩放和均值归一化

2.1、背景

如果输入变量 x x x的数值范围较大,那么代价函数的轮廓图变得细长,梯度下降过程曲折费时,如下所示:
在这里插入图片描述
如果样本中的特征 x x x的数值范围合理,那么代价函数的轮廓图变圆,梯度下降顺畅,如下所示:
在这里插入图片描述

2.2、具体实现

  1. 特征缩放
    通过调整每个特征的比例: x j ( i ) x m a x ( i ) − x m i n ( i ) \frac{x^{(i)}_j}{x^{(i)}_{max}-x^{(i)}_{min}} xmax(i)xmin(i)xj(i),其中分母是指各特征的最大值减最小值,使样本中的特征 x x x在【-1,1】范围附近,太小如【-0.0001,0.0001】或太大如【-100,100都不可以】。
  2. 均值归一化
    通过 x j ( i ) − μ i s i \frac{x^{(i)}_j-\mu_i}{s_i} sixj(i)μi代替 x j ( i ) x^{(i)}_j xj(i),使样本中的特征 x x x在【-0.5,0.5】范围附近。

3、选择学习速率 α \alpha α

  1. 如果学习速率选择合适,则代价函数在迭代过程中的取值曲线图如下:
    在这里插入图片描述

PS:可以在进行自动收敛测试时,设定迭代在下降值小于 1 0 − 3 10^{-3} 103时,则声明收敛,结束迭代。

  1. α \alpha α过小,则曲线图下降缓慢,如下:
    在这里插入图片描述

  2. α \alpha α过大,则曲线图可能来回波动甚至一直上升,如下:
    在这里插入图片描述在这里插入图片描述

  3. 具体实践中,可以取0.001、0.01、0.1和1等不同数量级的数进行尝试。

4、慎重选择特征

现有长和宽两组特征的样本e,但是任务T是根据面积预测价格,所以应该将长和宽两组特征组合(长×宽=面积),得到面积,再将得到的面积作为新特征,组成新的样本进行回归。

5、合理选择模型(假设函数)

如下图,因为随着面积的增大,价格是不会降低的,所以选择下方的多项式回归模型可能更加贴切:
在这里插入图片描述

同时,下方的模型也可以表示为线性:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n x n = ( s i z e ) n h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\cdots+\theta_nx_n\quad x_n =(size)^n hθ(x)=θ0+θ1x1+θ2x2++θnxnxn=(size)n

除此以外,还可以使用下面的模型:
h θ ( x ) = θ 0 + θ 1 ( s i z e ) + θ 2 ( s i z e ) h_\theta(x)=\theta_0+\theta_1(size)+\theta_2\sqrt{(size)} hθ(x)=θ0+θ1(size)+θ2(size)

6、正规方程法

6.1、用途

与梯度下降算法目的相同,均是求得模型参数 θ \theta θ

6.2、求解思路

基于微积分,令代价函数的各个偏导数为0,直接求出极值点
α ∂ ∂ θ j J ( θ ) = 0 ( f o r e v e r y j ) \alpha\frac{\partial}{\partial\theta_j}J(\theta)=0 \quad (for \quad every \quad j) αθjJ(θ)=0(foreveryj)
但是,当特征较多时,上面的计算极为复杂,在具体实践中,多数采用如下过程进行求解:

x 0 x_0 x0面积卧室数量层数年份价格
121045145460
114163240232
115343230315
18522136178
  1. 设计矩阵 X X X
    由各样本 x ( i ) x^{(i)} x(i)转置组合得到,其中 x 0 ( i ) = 1 x^{(i)}_0=1 x0(i)=1
    X = [ 1 2104 5 1 45 1 1416 3 2 40 1 1534 3 2 30 1 852 2 1 36 ] y → = [ 460 232 315 178 ] X= \begin{bmatrix} 1 & 2104 & 5 & 1 & 45 \\ 1 & 1416 & 3 & 2 & 40 \\ 1 & 1534 & 3 & 2 & 30 \\ 1 & 852 & 2 & 1 & 36 \end{bmatrix} \quad \overrightarrow{y}= \begin{bmatrix} 460 \\ 232 \\ 315 \\ 178 \end{bmatrix} X=11112104141615348525332122145403036y =460232315178
  2. 模型参数向量 θ → \overrightarrow{\theta} θ
    θ → = ( X T X ) − 1 X T y → \overrightarrow{\theta}=(X^TX)^{-1}X^T\overrightarrow{y} θ =(XTX)1XTy
    上式推导如下:
    X θ → = y → ⇒ X − 1 X θ → = X − 1 y → ⇒ θ → = X − 1 ( ( X − 1 ) T X T ) y → ⇒ θ → = ( X T X ) − 1 X T y → X\overrightarrow{\theta}=\overrightarrow{y}\rArr X^{-1}X\overrightarrow{\theta}=X^{-1}\overrightarrow{y}\rArr \overrightarrow{\theta}=X^{-1}((X^{-1})^TX^T)\overrightarrow{y}\rArr \overrightarrow{\theta}=(X^TX)^{-1}X^T\overrightarrow{y} Xθ =y X1Xθ =X1y θ =X1((X1)TXT)y θ =(XTX)1XTy

6.3、与梯度下降相比较

梯度下降正规方程
需要迭代多次不需要迭代
需要选择合适的 α \alpha α不需要选择参数
计算量小,在样本中特征组数量过多时( n &gt; 10000 n \gt 10000 n>10000)也能较好运行计算量大, 0 ( n 3 ) 0(n^3) 0(n3),在样本中特征组数量较少( n &lt; 10000 n \lt 10000 n<10000)才能较好运行

6.4、潜在的不可逆性

如果 X T X X^TX XTX不可逆,则无法求解模型参数向量,解决方法有:

  1. 去掉多余的特征组,比如一个特征组是关于平方米,另一个是平方厘米,则取其中一个即可。
  2. 如m=10,n=100,特征太多,删除一些不必要的特征或者正则化(下篇文章中学习)
  3. 用octave中pinv()命令,求伪逆矩阵(其求解思路可见上一篇博文《机器学习第一周》)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值